在Rails 3.1基于资产的应用程序中包含两次javascript
虽然问题的标题与以前的标题非常相似,但我的问题似乎有所不同。
简而言之,js清单中的第一项包含两次。
这是我在Rails 3.1应用程序中的整个/app/assets/javascript/application.js
文件:
//= require jquery //= require jquery-ui //= require jquery_ujs //= require autocomplete-rails //= require utilities
这里是渲染页面源代码的片段:
请注意,如果我向application.js
任何其他行移动到顶部,如下所示:
//= require utilities //= require jquery //= require jquery-ui //= require jquery_ujs //= require autocomplete-rails
它总是第一个被包含两次的项目!
UPDATE
作为临时解决方法,我在列表顶部添加了//= require dummy
,它指向一个空的dummy.js文件。 虽然它在渲染页面中出现两次,但它没有任何效果,因为它什么也没做。 另一方面,如果我在development.rb
设置config.assets.debug = false
,正如经常建议的那样,那么我的所有javascript都会被加载两次:
和js动作被触发两次(例如,删除模型时确认对话框弹出两次)
朱塞佩
之前我遇到过类似的事情,我只留下了第一个链接空白,它对我有用。 试试看。
/*leave the following line empty */ //= require jquery //= require jquery-ui //= require jquery_ujs //= require autocomplete-rails //= require utilities
事实certificate,罪魁祸首是rails-widgets插件,特别是这段代码 ,是小部件初始化的一部分。
删除后,一切恢复正常。 现在,Javascript资产在开发和生产中按预期加载一次。
虽然我很抱歉没有尽快发现问题对我的设置非常具体,但我仍然希望解决方案可能有用。 谢谢你们。
朱塞佩
看看这个:
Rails 3.1资产 – 发展中的奇怪服务
您还应检查您是否未编译资产,即没有公共/资产目录。 如果有删除它,退回你的服务器,你应该很高兴去。
最终,这两个解决方案都不适合我,所以我只是将config.assets.debug设置为false。 我无法以这种方式调试我的js,但至少它现在解决了这个问题。