我遇到了Rails 3.1资产管道的问题。 资产在开发中包含两次: 通用标签

通过某种方式编译并包含 application.js ,因此所有脚本都包含两次-作为单个文件并包含在 application.js

使用预编译的生产设备,一切都很好。

development.rb 通用标签

production.rb 通用标签

application.rb 通用标签

有帮助吗?

解决方案

尝试将以下内容添加到development.rb: 通用标签

...,然后清除浏览器缓存(基于注释进行更新

静态资产是指公共/资产中的预编译资产,这是rake assets:precompile放置它们的地方。

正在发生的事情是,如果您提供公共/资产中存在的任何内容,它们将覆盖应用/资产中的所有内容。因此,当js标签打算识别app / assets / application.js时,将加载public / assets / application.js。

其他提示

一旦摆脱/ public / assets,还必须清除浏览器缓存。

这只是给我带来了一个问题。设置以下内容可使该应用程序正常工作,但包括单个application.js文件-我在开发中不希望使用该文件: 通用标签

我以前已经对资产进行了预编译(可能是原因)。

要解决此问题,我执行了以下操作:

  • 删除先前的预编译添加的public / assets目录。
  • 运行RAILS_ENV=development rake assets:clean清除tmp /资产
  • 编辑的app / assets / application.js

    直到我编辑了application.js之后,它才出现错误,然后对其进行了更正,发现页面中包含的applciation.js不是完整的,预编译的application.js。

    我不确定是否需要完成所有这些操作。我也一直在重新启动服务器。

被这件事绊倒了(再次),-不要忘记在您的//= require末尾的所有application.js指令后添加空白行!

我用更少的文件添加了相同的问题。

来自文档

在开发模式下,资产按顺序作为单独的文件提供 它们是在清单文件中指定的。

我的解决方案是从*= require_tree .中删除行application.css.less,只使用少部分的@import "my-styles";

也许您可以使用javascript找到类似的解决方案...

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top