我已将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代码,这是正确的程序吗?谢谢
答案 0 :(得分:6)
好的,我好像已经解决了。
在environment / development.rb中更改此行
config.assets.debug = true
到此
config.assets.debug = false
不知道为什么会这样,但是阅读导轨指南并引用:
“当调试模式关闭时,Sprockets连接并在所有文件上运行必要的预处理器。关闭调试模式后,上面的清单将生成:”
<script src="/assets/application.js" type="text/javascript"></script>
希望这可以帮助有类似问题的人。