2013-10-05 45 views
0

我已经为Heroku部署了Rails 4应用程序,它为我的CSS和JS资产提供了很好的服务,但无法找到图像(404)。Heroku上的Rails 4应用程序提供CSS和JS,但不提供图像资产

我已经添加了gem 'rails_12factor'并试图切换config.serve_static_assets = true但无济于事(不是rails_12factor为您做了吗?)。

最奇怪的部分是,它几乎与我最近部署的另一个Rails 4应用程序相同,它与资产没有任何问题。有两个应用程序之间只有很少的不同(从配置的角度来看):

  1. 破碎的一个将被部署到Heroku的“预热室”以及不提供图片被部署到“宁静 - 地球上一个”。

  2. 的一个未在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 
    

    我无法想象如何会影响任何有意义的。

  3. 破碎的已经安装了宝石的新宝石newrelic_rpm,工作人员没有。它还使用了ENV变量管理宝石​​和MailChimp的gibbon宝石,这是工作应用程序没有的。不知道这将如何影响的事情,但你知道更好的比我

最后一点:我的第一个部署我已经添加了自定义CSS和图像文件,以回购后,虽然我也有rails_12factor安装时,表现出一定相同奇怪的错误,如this SO post详述,但他们走了我的未来部署尽管没有有意义的变化(这似乎很奇怪):

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好但不是图像?

为什么我的两个几乎完全相同的应用程序会有所不同?

回答

0

调试此方案的一种方式:

打开生产应用程序在浏览器(如Chrome浏览器),打开开发者工具,重新加载页面,检查请求的图像:

  • 是请求的URL是你期望的那个(也就是说,它是否附加了MD5校验和)?如果缺少校验和:您应该使用Rails <%= image_tag('image.png')代替,您可能已将图像插入<img src='/images/image.png'></img>样式。谷歌帮助那个帮手。
  • 如果URL符合预期:图像请求的状态和响应是什么?如果是404,确保你已经正确地指定的路径在image_tag帮手(你可能不需要在前面加上像/images的东西,如果你有它。实验一点点,直到你找到答案。
4

在设置config.assets.compile=trueconfig/environments/production.rb解决了这个问题,但我仍然不太明白为什么发生这个问题。

+1

这也解决了我的问题。但是,我像@埃里特鲁特曼一样,不知道最初的问题是什么。 – stalepretzel

相关问题