我已经为 Heroku 部署了一个 Rails 4 应用程序,它可以很好地为我的 CSS 和 JS 资产提供服务,但找不到图像 (404)。
我已经添加gem 'rails_12factor'
并尝试切换config.serve_static_assets = true
但无济于事(rails_12factor
无论如何都不为你做吗?)。
最奇怪的部分是它与我最近部署的另一个 Rails 4 应用程序几乎相同,资产没有问题。两个应用程序之间只有一些区别(从配置的角度来看):
损坏的被部署到 Heroku 的“暖室”,而提供图像的则被部署到“宁静的地球”。
不提供图像的那个在 production.rb 中也有一些 Sendgrid 设置:
config.action_mailer.smtp_settings = { :address => 'smtp.sendgrid.net', :port => '587', :authentication => :plain, :user_name => ENV['SENDGRID_USERNAME'], :password => ENV['SENDGRID_PASSWORD'], :domain => 'heroku.com' } config.action_mailer.delivery_method ||= :smtp
我无法想象这会如何影响任何有意义的事情。
坏的安装了newrelic的
newrelic_rpm
gem,工作的没有。它还利用了 ENV 变量管理 gemfigaro
和 MailChimp 的gibbon
gem,而工作应用程序没有。不知道这会如何影响事情,但你比我更清楚。
最后说明:在我将自定义 CSS 和图像文件添加到 repo 之后,我的第一次部署,即使我确实已经安装了,也显示了一些与这篇 SO 帖子rails_12factor
中详述的相同的奇怪错误,尽管它们在我的下一次部署中消失了,尽管没有有意义的变化(这看起来很奇怪):
Running: rake assets:precompile
I, [2013-10-05T04:25:02.831526 #626] INFO -- : Writing /tmp/build_0eea2e50-5876-4521-b7f6-7ca902cb129b/public/assets/bg-c63ed011f04c5167903c6d603521adfb.jpg
I, [2013-10-05T04:25:02.836773 #626] INFO -- : Writing /tmp/build_0eea2e50-5876-4521-b7f6-7ca902cb129b/public/assets/coding_school-3bcbdaea6f8c23b774d27df4b608647a.jpg
I, [2013-10-05T04:25:02.840352 #626] INFO -- : Writing /tmp/build_0eea2e50-5876-4521-b7f6-7ca902cb129b/public/assets/down_arrow_select-0b10b4ac52a74389bbc3abbb3a8cde7a.jpg
I, [2013-10-05T04:25:03.013966 #626] INFO -- : Writing /tmp/build_0eea2e50-5876-4521-b7f6-7ca902cb129b/public/assets/application-0c6f0f27ac77563741a04576653d7c0e.css
Asset precompilation completed (3.22s)
什么可能导致应用程序可以正常提供 CSS 和 JS 但不能提供图像?
为什么我的两个几乎相同的应用程序会有所不同?