如果这已经发布在其他地方,我很抱歉,但我不确定如何表达对这个问题的搜索。
基本上,我有fullcalendar.js
坐在app/assets/javascripts/
。在我的application.js
文件(当然在同一文件夹中)我有以下内容......
//= require jquery
//= require jquery_ujs
//= require foundation
//= require_tree .
所以,正如预期的那样fullcalender.js
被卷入资产编译过程并最终出现在application.js
然后将其提供给用户。
当我尝试引用中定义的函数时,问题就出现了fullcalendar.js
(因此定义在application.js
编译资产后)它会抛出一个错误说明TypeError: $(...).fullCalendar is not a function
在firebug的js控制台中,当然完整的日历不会渲染。
但是现在,如果我包括<%= javascript_include_tag "fullcalendar.js" %>
在拉入所有其他脚本和样式表后,在布局文件中,它会按预期工作。
百思不得其解,我查看了每个文件中的js并进行了比较,看不出有什么区别。资产管道是否发生了我不知道的事情,或者这是一些奇怪的 DOM 问题?我现在还不知道。
以下是两篇文章的内容,仅供参考application.js
and fullcalendar.js
链接到网站的页面源。我只包含了每个相关的完整日历部分,因为如果我包含所有内容,它对于要点或pastebin来说太大了。
让我困惑的是,两个源都来自同一个文件,一个只是直接链接,另一个则通过资产管道流程流动。
application.js
- http://pastebin.com/byyNErB8 http://pastebin.com/byyNErB8
fullcalendar.js
- http://pastebin.com/k4p29YmP http://pastebin.com/k4p29YmP
任何见解或帮助将不胜感激。