【发布时间】:2014-02-05 23:15:06
【问题描述】:
我有一个 Heroku 实例设置为我的应用程序的登台服务器。直到最近它工作正常,但我意识到它也将 Rails.env 设置为等于:production。我希望它是:staging。
因此我运行了命令
heroku config:set RACK_ENV=staging RAILS_ENV=staging --remote staging
还为暂存环境添加了config/environments/staging.rb。该配置文件反映了生产环境的配置文件。但是,我现在发现资产管道的行为很奇怪。
如果我执行命令:
git push staging master
然后资产编译似乎根本没有发生(在我的实际生产环境中,它发生在 Heroku 完成 slug 编译之后)。
在 Heroku 上手动运行预编译
heroku run rake assets:precompile -a ptw-staging
确实可以编译资产,但是生成的 URL 会返回 404 错误。不仅如此,编译返回的资产与应用程序中的资产不匹配
例如,运行编译命令返回:
plantheworld-code petenixey$ heroku run rake assets:precompile -a ptw-staging
Running `rake assets:precompile` attached to terminal... up, run.1158
#...
I, [2014-02-05T13:52:28.963871 #2] INFO -- : Writing /app/public/assets/application-643f7d598dfee123184a638ee696cf15.css
作为 HTML 本身的文件之一,包含的 application.css 文件是:
<link href="/assets/application-b79916a954fcdab047e735446f1f76a1.css" media="all" rel="stylesheet" />
这是同一个文件,但最后的哈希值不同。
我做错了什么?
【问题讨论】:
标签: heroku asset-pipeline