【问题标题】:Heroku asset files always emptyHeroku 资产文件始终为空
【发布时间】:2013-09-04 10:37:48
【问题描述】:

首先,我做了很多谷歌搜索,甚至在 Heroku 上运行,但似乎无论我是让 heroku 在 slug 编译期间预编译我的资产,还是我自己预编译并提交它们,无论哪种方式,我的 Rails 4 应用程序的 application.css 始终为空:

$ curl -i http://www.boxscoregeeks.com/assets/application-c712146df692b0fca6c21c0bf1dddcd5.css
HTTP/1.1 200 OK
Content-Type: text/css
Date: Sun, 01 Sep 2013 00:50:10 GMT
Last-Modified: Sun, 01 Sep 2013 00:46:54 GMT
Status: 200 OK
X-Sendfile: /app/public/assets/application-c712146df692b0fca6c21c0bf1dddcd5.css
Content-Length: 0
Connection: keep-alive

验证一下,本地没问题:

$ curl -I http://localhost:3001/assets/application-c712146df692b0fca6c21c0bf1dddcd5.css
HTTP/1.1 200 OK
Last-Modified: Sat, 31 Aug 2013 03:46:55 GMT
Content-Type: text/css
Content-Length: 106237
Connection: keep-alive
Server: thin 1.5.1 codename Straight Razor

我的清单:

  • 我的 production.rb 文件中有 config.serve_static_assets = true
  • 我的 Gemfile 中有 gem 'rails_12factor', group: :production
  • 我这样做了:heroku labs:enable user-env-compile --app=YOUR_APP。在我运行之前,assets:precompile 不会运行,尽管执行了第 1 步和第 2 步。它总是会尝试初始化生产数据库。

几乎我所有的谷歌搜索都告诉我要在上面做这些事情,但在这里我仍然有一个空的 applicaiton.css 文件。任何帮助都会很棒。

谢谢!

【问题讨论】:

  • 同样在production.rb 中确保启用config.assets.precompile += %w( search.js )。不要使用config.assets.precompile = ['*.js', '*.css'],因为其他线程可能会建议。
  • 完成后,还要确保运行RAILS_ENV=production rake assets:precompile。然后提交并推送。

标签: heroku ruby-on-rails-4


【解决方案1】:

我自己找到了这个问题的答案。

有问题的应用程序是我从 rails 3 升级的应用程序。因此,我构建并部署了一个空的新 rails 4 应用程序(并且成功了)。通过比较 production.rb 文件,我注意到非工作应用程序中有这样一行:

# Specifies the header that your server uses for sending files
# (comment out if your front-end server doesn't support this)
config.action_dispatch.x_sendfile_header = "X-Sendfile" # Use 'X-Accel-Redirect' for nginx

此配置行在新的 rails 4 应用程序中被注释掉。 Heroku 文档建议这样做:

config.action_dispatch.x_sendfile_header = nil # For Heroku

当我改变它时,一切都按预期工作。当应用程序在 Rails 3 中的 Cedar 上运行时,这似乎无关紧要。

【讨论】:

  • 谢谢,刚刚遇到了同样的问题,已经解决了:)
  • 天哪,你不知道这有多棒。也解决了我的疯狂问题!
  • PatrickEm 先生,您为世界做出了巨大贡献。 别针网络奖牌
  • 你是救生员!感谢您帮助调试这个愚蠢的错误。出于某种原因,rails_12factor gem 不会覆盖此设置。
猜你喜欢
  • 2012-03-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-07-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多