【发布时间】:2013-05-10 19:52:11
【问题描述】:
我在使用 Rails 资产预编译时遇到了一些以前从未遇到过的问题。在这个应用程序中运行rake assets:precomile 时,我看到每个资产都被编译了两次。如果我跟踪 production.log,我可以看到它基本上似乎连续两次运行整个命令。这是来自日志的修改示例...
Connecting to database specified by database.yml
Compiled jquery.js (97ms) (pid 56296)
Compiled jquery.cycle.all.js (2ms) (pid 56296)
Compiled jquery.numeric.js (0ms) (pid 56296)
Compiled matchMedia.js (0ms) (pid 56296)
Compiled fastclick.js (1ms) (pid 56296)
... etc ...
Connecting to database specified by database.yml
Compiled jquery.js (97ms) (pid 56296)
Compiled jquery.cycle.all.js (2ms) (pid 56296)
Compiled jquery.numeric.js (0ms) (pid 56296)
Compiled matchMedia.js (0ms) (pid 56296)
Compiled fastclick.js (1ms) (pid 56296)
... etc ...
检查已编译的文件确认它已将所有内容编译两次,因此所有 CSS 和 JS 都是重复的。
我正在使用 Rails 3.2.13 和 Ruby 2.0.0-p0(也尝试使用 1.9.3-p392)。
我以前从未遇到过资产预编译的任何问题,所以如果有人知道为什么这次它会表现出这种不寻常的行为,我很想听听。
干杯!
【问题讨论】:
-
你能列出你的
config/application.rb吗?你用的是什么版本的 Rails?您最近是否升级了 Rails 安装? -
使用 Rails 3.2.13。在整个应用程序的开发过程中,我已经对其进行了几次升级,但我检查了
config/application.rb和所有环境文件与一个新的 Rails 3.2.13 项目,看起来我没有遗漏任何东西。config/application.rb可以在这里看到:gist.github.com/alistairholt/f4b1123c8c30aa03fe4e(删除了一些敏感的东西)。谢谢。 -
第 35 行设置了所有需要预编译的资产。我假设“sites/REMOVED.css”的多个场合来自不同的文件?
-
是的,它们都是不同的文件。出于隐私考虑,我刚刚删除了这些名称。
-
您确定这种行为以前从未发生过吗?我刚刚运行了自己的一个 3.2.13 应用程序的预编译,实际上有些文件在日志中出现了 5 次。也许这只是资产管道的内部运作;它必须多次点击每个文件?
标签: ruby-on-rails asset-pipeline