2

我有一個Rails 3.1.0應用程序在一個活的服務器上,當以開發模式啓動服務所有圖像和favicon.ico很好。爲什麼在啓動生產服務器時圖像無法傳送?

但是,如果在生產環境中啓動相同的應用程序,公用文件夾中的favicon圖像/其他圖像將不會提供,其路徑將引發404錯誤(有趣的是,404頁面的靜態圖像也未提供)。任何線索Rails神?

我正在使用NginX + Unicorn + Rails 3.1.0。資產管道用於除404/500錯誤頁面和favicon之外的所有內容。

回答

4

我需要顯示我的公用文件夾中的文件在生產模式也是如此。我在「config/environments/production.rb」中設置了「config.serve_static_assets」到true,它工作。

0

您是否曾嘗試將所有圖片移至app/assets/images?這就是Rails 3.1中的資產管道爲圖像提供服務的地方。 (例如,在新鮮的3.1.0應用程序中,rails.png文件現在位於app/assets/images而不是「public/images」)。

+0

這樣做會導致出現404/500錯誤頁面的目的,不是嗎?如果服務器消失,app/assets/images中的圖像將不會在處理錯誤的頁面上提供。圖像無法從公共文件夾提供 - 特別是在生產模式下,這不奇怪嗎? – marvindanig

+0

有趣的是,favicon現在已經從公共文件夾彈出,但404(錯誤頁面)的圖像沒有!在這裏:http://bubbleideas.com/404 – marvindanig

+2

你應該把圖像放在app/assets/images中,但是你必須運行bundle exec rake資源:每次部署時進行預編譯,以便將它們複製到公共/資產你的網絡服務器可以真正找到它們。打擾預編譯步驟的主要原因是資產摘要。 –

0

僅供參考;如果你拉起CSS背景圖像,那麼你需要放入'assets/imagename.jpg'而不是舊的路由,即使'imagename.jpg'

相關問題