繁体   English   中英

Heroku不能预编译我的资产吗?

[英]Heroku not precompiling my assets?

我有一个Rails 3.2应用程序,它给了我一个“很抱歉,但是出了点问题。” 我部署到heroku时出现提示信息。 检查日志有

2013-11-13T17:27:25.599927+00:00 app[web.1]: Started GET "/" for 54.247.188.179 at 2013-11-13 17:26:25 +0000
2013-11-13T17:27:25.599927+00:00 app[web.1]: 
2013-11-13T17:27:25.599234+00:00 app[web.1]:   Rendered static_pages/root.html.erb within layouts/application (5.9ms)
2013-11-13T17:27:25.599506+00:00 app[web.1]: Completed 500 Internal Server Error in 7ms
2013-11-13T17:27:25.600076+00:00 app[web.1]: Completed 500 Internal Server Error in 7ms
2013-11-13T17:27:25.600076+00:00 app[web.1]:   Rendered static_pages/root.html.erb within layouts/application (6.1ms)
2013-11-13T17:27:25.600076+00:00 app[web.1]:     10: 
2013-11-13T17:27:25.600076+00:00 app[web.1]: ActionView::Template::Error (static_pages.css isn't precompiled):
2013-11-13T17:27:25.600076+00:00 app[web.1]:     9:

以及其他看起来非常相似的东西。 我已经为此进行了很多工作,并且看到了其他一些类似的问题,所以我将避免一些您认为可能存在的潜在问题:

  • 在推送到heroku之前,我本地没有public / assets文件夹
  • 我的application.rb中有config.assets.enabled = true行
  • 我的application.rb中有config.assets.initialize_on_precompile = false行

在此先感谢您提供更多信息。

解决

显然,为了使该CSS正确编译,我必须将此行添加到config / environments / production.rb中:

    config.assets.enabled = true

感谢泰勒。

您需要构建要预编译的资产列表。

例如,在您的config / environments / production.rb中

config.assets.precompile += %w( foo.js foo.scss static_pages.css)

看起来您没有在预编译static_pages.css。 我不知道这是否有意,但您有2种选择:

选项1:如果错过了预编译资产,请避免回退到资产管道。 您可以通过以下方式设置:

# config/environments/production.rb
config.assets.compile = true

这将导致Rails即时编译未编译的文件,而不是抛出错误(此操作正在执行)。 在此更多有关此设置的信息: 在Rails生产中,config.assets.compile = true,为什么不呢?

选项2:确保文件已被预编译。 您可以通过以下方式设置:

# config/environments/production.rb
config.assets.precompile += ['admin.js', 'admin.css', 'static_pages.css']

这将导致Rails进行预编译并将样式表包括在资产管道中。 有关此设置的更多信息: config.assets.precompile的用途是什么?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM