在文档中非常明确地说如果我不在本地预编译它就会这样做。
说实话,我没兴趣在本地预编译这些。
我在 production.rb 中有什么,我在 application.rb 中重复了
在我的 production.rb :
中config.serve_static_assets = false
config.assets.compile = false
config.assets.precompile << 'application.js'
config.assets.precompile << 'application.css'
config.assets.precompile << 'screen.css'
然后我部署,然后返回:
-----> Compiled slug size: 52.4MB
-----> Launching... done, v28
http://myapp.herokuapp.com deployed to Heroku
所以它“编译”了一些东西,对吧?除了没有,我去了网站,.css和.js文件是空白的。
为了在本地预编译,我需要在 bootstraps_and_overrides.css 中注释掉这一行:
@import "screen.css.scss";
然后它在本地预编译,我的本地机器将无法正确加载css,但远程它将实际正常工作。
所以我现在的部署方法是注释掉那行代码,
bundle exec rake assets:precompile
git add .
git commit -m "Adding public/assets"
git push heroku development:master
然后(不幸!):
bundle exec rake assets:clean
然后取消注释我的.css中的那行代码。
答案 0 :(得分:17)
要检查的一些事项
config/application.rb
中,您需要第config.assets.enabled = true
行public/assets
文件夹。 On deployment Heroku decides whether or not to precompile based on whether this folder is present (even if it's empty)。答案 1 :(得分:2)
尝试更改为此。我希望这会对你有所帮助。
在config / environments / production.rb
中 config.assets.compile = true
config.assets.digest = true
答案 2 :(得分:0)
你可能在错误的Heroku堆栈上。在创建使用资产管道的应用程序时,请确保指定stack Cedar。
heroku create -stack cedar
答案 3 :(得分:0)
它不会部署的原因是因为Google字体。将文件移动到application.css,例如:
*= require_self
*= require_tree .
*/
@import url(http://fonts.googleapis.com/css?family=Special+Elite);
允许部署应用程序,并使字体能够正常工作。