我在index.html.erb文件中使用的圖像位於assets/images目錄中。我已將應用部署到heroku,但未顯示圖像。我使用html文件中的標籤鏈接圖像,而不是在css文件中。在Heroku中沒有顯示部署應用程序的圖像
請幫忙。
我在index.html.erb文件中使用的圖像位於assets/images目錄中。我已將應用部署到heroku,但未顯示圖像。我使用html文件中的標籤鏈接圖像,而不是在css文件中。在Heroku中沒有顯示部署應用程序的圖像
請幫忙。
如果您的圖片確實是該文件夾中,那麼你可以在這裏使用這種方法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
您看到的問題是:我的圖像未在CSS文件內的樣式表中引用。我已經在HTML文件中引用了它們,並且我需要保留它,所以考慮到如何在部署到heroku後顯示圖像 – redilhom
如果您的圖像是屬於你資產管道(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/images
,vendor/assets/images
和public/assets/images
拉正確的文件
如果這在當地有效,這意味着你的路徑沒問題。如果它在本地不起作用,則意味着您的路徑不正確,問題將出現在您的代碼中。
你應該提供一個鏈接到您的Heroku應用和告訴我們您正在使用[Rails的3.1和圖片資源(HTTP的
可能重複的HTML/ERB文件://計算器。 com/questions/6213218/rails-3-1-and-image-assets) – Gene
從您的erb文件以及瀏覽器和服務器控制檯的輸出中發佈一些片段。 –
你有沒有仔細檢查你的[配置文件](http://blog.55minutes.com/2012/02/untangling-the-rails-asset-pipeline-part-3-configuration/)? –