2012-02-01 78 views
8

當我加載thin像這樣:運行在生產模式瘦服務器沒有加載我的資產

thin start -e production 

,並嘗試訪問我的網頁之一,我得到這個在日誌輸出:

cache: [GET /] miss 
cache: [GET /assets/main-bd1ef4b153740fb69fd615304b87ad0d.css] miss 
cache: [GET /assets/jqModal-8fa734bf4f58524b2799abd73ab7d34f.css] miss 
cache: [GET /assets/jquery-544665ba1d5b4f793290421aafed85c9.js] miss 
cache: [GET /assets/application-00b97aa2429046c0c43802f07b756b46.js] miss 

這些文件存在於我的assets目錄下的public

我已經運行此命令也:

RALS_ENV=production rake assets:precompile 

我已經嘗試了訪問文件/public/assets/application.js在瀏覽器這樣的:

http://localhost:3000/application.js 

,給了我一個404錯誤(即使該文件存在於/public/assets中,但在服務器處於開發模式時向文件發出請求時可以讀取該文件。

+0

確切的問題是什麼 - 存在緩存未命中? (這可以在您第一次請求文件時預期),還是這些文件根本無法訪問?他們_應該可以在http:// localhost:3000/assets/application.js等處獲得。 – Elad 2012-02-01 19:52:25

回答

13

Rails的提供靜態文件在生產中(config/environments/production.rb)默認情況下關閉:

# Disable Rails's static asset server (Apache or nginx will already do this) 
config.serve_static_assets = false 

瘦服務器未配置爲服務於靜態資產,所以請求你的資產失敗。

+0

這看起來像我需要的修復。一旦我部署到heroku並確定知道,我會將其標記爲答案。 – DJTripleThreat 2012-02-01 21:04:48

+0

建議使用Thin作爲服務器嗎?託管公司表示,他們已經向瘦客戶提供代理服務。它可以工作,但它可能沒有我讀的地方那麼快。 Ryan,你是Spree的傢伙嗎? :-) – 2014-09-08 18:25:32

+0

我不會在生產中使用Thin。我會使用獨角獸或彪馬。是的,我是以前從Spree來的Ryan傢伙,但現在我爲LIFX工作。 – 2014-09-09 05:28:56

相關問題