为什么rake资产:开发中的预编译会导致问题,但在我的生产环境中却不会

时间:2012-05-09 17:03:09

标签: ruby-on-rails-3.1 asset-pipeline

我已将heroku上的应用程序升级为雪松堆栈,以便资产管道正常工作。我已经按照heroku's docs中给出的指示选择在本地编译资产。

这创建了一个目录public / assets。生产中的一切都完美无缺(css,js,没有任何问题)。回到我的开发环境似乎会导致js无法正常运行。

environments / production.rb

config.serve_static_assets = false
config.assets.compress = true
config.assets.compile = true
config.assets.digest = true

environments / development.rb

config.assets.compress = false
config.assets.debug = true
config.assets.compile = true

我检查了源页面,所有文件都正确加载,没有重复的条目。我已经阅读了一些关于是在本地还是在生产中编译资产的SO问题,但它们似乎都没有帮助。还有其他我缺少的东西来恢复我的开发javascript代码,这是正确的程序吗?谢谢

1 个答案:

答案 0 :(得分:6)

好的,我好像已经解决了。

在environment / development.rb中更改此行

config.assets.debug = true

到此

config.assets.debug = false

不知道为什么会这样,但是阅读导轨指南并引用:

“当调试模式关闭时,Sprockets连接并在所有文件上运行必要的预处理器。关闭调试模式后,上面的清单将生成:”

<script src="/assets/application.js" type="text/javascript"></script>

希望这可以帮助有类似问题的人。