2014-06-10 55 views
1

我在index.html.erb文件中使用的圖像位於assets/images目錄中。我已將應用部署到heroku,但未顯示圖像。我使用html文件中的標籤鏈接圖像,而不是在css文件中。在Heroku中沒有顯示部署應用程序的圖像

請幫忙。

+0

可能重複的HTML/ERB文件://計算器。 com/questions/6213218/rails-3-1-and-image-assets) – Gene

+0

從您的erb文件以及瀏覽器和服務器控制檯的輸出中發佈一些片段。 –

+0

你有沒有仔細檢查你的[配置文件](http://blog.55minutes.com/2012/02/untangling-the-rails-asset-pipeline-part-3-configuration/)? –

回答

1

如果您的圖片確實是該文件夾中,那麼你可以在這裏使用這種方法How to reference images in CSS within Rails 4

但是如果你上傳圖片到通過Carrierwave您的Rails應用程序,那麼你需要使用外部圖片託管服務提供商,如Cloudinary。這是因爲Heroku環境會刷新每個git push,所以上傳的服務器上的任何文件(因爲它們不在客戶端git端)都會被刪除。

您可以運行heroku run bash在Heroku上查看您的目錄以驗證圖像是否存在。

編輯

在常規視圖,您可以訪問圖像公共/資產/ images目錄是這樣的:

<%= image_tag "rails.png" %> 

來源:http://guides.rubyonrails.org/asset_pipeline.html#coding-links-to-assets

+0

您看到的問題是:我的圖像未在CSS文件內的樣式表中引用。我已經在HTML文件中引用了它們,並且我需要保留它,所以考慮到如何在部署到heroku後顯示圖像 – redilhom

3

如果您的圖像是屬於你資產管道(IE assets/images),您應該能夠使用Heroku相對簡單地訪問它們,特別是如果您使用image_tag來執行此操作(而不是css

-

預編譯

由於Heroku relies on your assets being static (precompiled),我會確保資產是預編譯的系統上,而你正確地引用它們:

#cmd 
$ heroku run rake assets:precompile 

這將預編譯Heroku系統上的資源(無論如何都應該完成),確保您的應用程序能夠正確訪問文件。這是測試的第一件事情,因爲它往往是文件將保留的情況下非編,防止Heroku的閱讀他們

-

圖片

關於你的圖像,你需要從asset pipeline知道調用image_tag "your_image.png應該自動調用assets/imagesvendor/assets/imagespublic/assets/images拉正確的文件

如果這在當地有效,這意味着你的路徑沒問題。如果它在本地不起作用,則意味着您的路徑不正確,問題將出現在您的代碼中。


你應該提供一個鏈接到您的Heroku應用告訴我們您正在使用[Rails的3.1和圖片資源(HTTP的