Rails - 由于未编译的资产,无法在Heroku上运行应用程序

时间:2013-10-26 23:06:01

标签: ruby-on-rails ruby heroku assets

当我运行我部署到Heroku的应用程序时,我收到此错误:

ActionView::Template::Error ('fontawesome.less' wasn't found

我尝试过本地预编译资产 - 这样:

bundle exec rake assets:precompile

结果:

...
FATAL:  database "myapp_production" does not exist
...

当我运行 - heroku run rake assets:precompile时,结果是:

...
'fontawesome.less' wasn't found
...

config/environments/production.rb中的设置:

  config.assets.compile = true

导致此问题的原因是什么?

非常感谢

2 个答案:

答案 0 :(得分:0)

您应该解决数据库配置问题,以便能够在本地编译资产。

编译的资产全部为.css,而不是less

检查config/application.rb,例如我有这些行:

config.assets.paths << Rails.root.join("app", "assets", "flash")
config.assets.precompile += [ 'print.css', 'resume.css', 'application.css', 'reset-min.css', 'lightbox.css', 'bootstrap.css', 'grid.css' ]
config.assets.precompile += [ 'rails.js', 'application.js', 'bootstrap.js' ]
config.assets.enabled = true
config.assets.version = '1.0'

答案 1 :(得分:0)

你需要少量的rails gem,文件的sufix是.css.less

  

gem'less-rails'

如果你需要单独的application.js文件,你需要在environments / production.rb中添加预编译数组,文件的扩展名应该是“.css.less”

  

config.assets.precompile + =%w(fontawesome.css)

确保在环境/ production.rb中启用了static_assets选项

  

config.serve_static_assets = true