我的问题是我在app / assets文件夹中做了很多更改,因此在我的开发环境中,我可以使用此命令轻松解除旧的更改。
rake assets:clobber
然后用这个重新编译。
rake assets:precompile --trace
这一切都适用于我的当地人。现在的问题是,很少有变化搞砸了heroku。虽然heroku在推送代码时预编译资产,但我想手动预编译资产。在完成生成的application.css时,它指定了四次而不是一次的值。第一次和第三次是正确的,但第二次和第四次是错误的,所以我猜错了。所以我想通过清理资产并重新预编译来修复它。 Thanx的帮助。
答案 0 :(得分:1)
手动预编译资产
每次推送代码时都会重建Heroku的ephemeral file system。因此,理论上(Heroku通常有自己的做事方式),每次新部署都会擦除您的资产。
It's a hack,但您可以在assets:clean
后面调用rake任务:
# lib/tasks/heroku_migrate.rb
Rake::Task['assets:clean'].enhance do
Rake::Task['assets:clobber'].invoke
...
end
-
关于您的资产管道,如果您对样式表的编译方式遇到特殊问题,则表明您的基础代码/实现存在问题。
也许显示你遇到的问题会有什么好处?
-
当然,您可以使用模拟production
环境在本地预编译:
rake assets:precompile RAILS_ENV=production
<强>更新强>
我们使用以下内容:
#Gemfile
gem 'font-awesome-rails', '~> 4.5' #-> Icons
#app/assets/stylesheets/application.sass
@import font-awesome
如果您使用font-awesome
,则不需要更多。
当然,如果你想使用变量或mixins(我们强烈推荐bourbon
),你可以随意使用它们。如果您正在使用gem,则无需将font-awesome
文件添加到管道中。