【发布时间】:2012-01-23 09:56:55
【问题描述】:
虽然问题的标题与之前的一些问题非常相似,但我的问题似乎有所不同。
简而言之,js manifest 中的第一项被包含两次。
这是我在 Rails 3.1 应用程序中的整个 /app/assets/javascript/application.js 文件:
//= require jquery
//= require jquery-ui
//= require jquery_ujs
//= require autocomplete-rails
//= require utilities
这是渲染页面源代码的 sn-p:
<script src="/assets/jquery.js?body=1" type="text/javascript"></script>
<script src="/assets/jquery.js?body=1" type="text/javascript"></script>
<script src="/assets/jquery-ui.js?body=1" type="text/javascript"></script>
<script src="/assets/jquery_ujs.js?body=1" type="text/javascript"></script>
<script src="/assets/autocomplete-rails.js?body=1" type="text/javascript"></script>
<script src="/assets/utilities.js?body=1" type="text/javascript"></script>
<script src="/assets/application.js?body=1" type="text/javascript"></script>
请注意,如果我将application.js 中的任何其他行移至顶部,如下所示:
//= require utilities
//= require jquery
//= require jquery-ui
//= require jquery_ujs
//= require autocomplete-rails
它总是第一个被包含两次!
<script src="/assets/utilities.js?body=1" type="text/javascript"></script>
<script src="/assets/utilities.js?body=1" type="text/javascript"></script>
<script src="/assets/jquery.js?body=1" type="text/javascript"></script>
<script src="/assets/jquery-ui.js?body=1" type="text/javascript"></script>
<script src="/assets/jquery_ujs.js?body=1" type="text/javascript"></script>
<script src="/assets/autocomplete-rails.js?body=1" type="text/javascript"></script>
<script src="/assets/application.js?body=1" type="text/javascript"></script>
更新
作为临时解决方法,我在列表顶部添加了//= require dummy,它指向一个空的 dummy.js 文件。尽管它在呈现的页面中出现了两次,但它没有任何效果,因为它什么都不做。另一方面,如果我像经常建议的那样在development.rb 中设置config.assets.debug = false,那么我的所有javascript 都会被加载两次:
<script src="/assets/application.js" type="text/javascript"></script>
<script src="/assets/application.js" type="text/javascript"></script>
并且js动作被触发两次(例如,删除模型时会弹出两次确认对话框)
朱塞佩
【问题讨论】:
-
您是否有公共/资产中的文件?如果您确实删除它们,因为这可能会导致这种重复
-
不,我开发的 /public 中没有资产目录
-
您是否尝试过将 config/environments/development.rb config.assets.debug 更改为 false,想知道它在连接所有资产时是否做了“正确的事情”
-
我确实尝试过,但它造成了严重破坏。请参阅原始问题的更新。谢谢
标签: javascript ruby-on-rails ruby-on-rails-3.1 asset-pipeline