2013-10-05 70 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

相關問題