2012-12-19 95 views
1

我已經部署了我的軌道與資產管道應用啓用,像這樣的application.rb中文件中:爲什麼Rails會爲所有資產提供404錯誤?

# Enable the asset pipeline 
config.assets.enabled = true 

當我檢查,我可以看到文件已經由編譯器的public/assets目錄內處理,但當我瀏覽網站時,瀏覽器無法解析任何資產。如果我直接訪問資產,我會看到Nginx發送的404消息。

有人能告訴我發生了什麼事嗎?

+1

顯示你的nginx的配置和你的application.rb中 – astropanic

回答

0

即使上面的答案很好,這不是我的問題。 Rails正在寫作,除了Nginx沒有正確配置。我的Nginx配置指向主應用程序目錄而不是public目錄。

所以它最初是:

server { 
    server_name wptrends.envato.com; 
    root /home/deployer/apps/report/current; 
    ... 

時,它應該是這樣的:

server { 
    server_name wptrends.envato.com; 
    root /home/deployer/apps/report/current/public; 
    ... 
3

基本上編譯和gzip的文件不存在於正確的目錄中。

如果您在開發環境中運行,請嘗試在config/environments/development.rb中設置config.assets.compile = true。它將在調用時即時生成資產文件。這是壞的生產,因爲它會嚴重影響性能

所以,如果你是在生產環境中嘗試運行

rake assets:precompile

1

我最近偶然發現了同樣的問題。我假設你正在談論生產環境。解決的辦法是要求鏈輪再次在application.rb無論是做

require 'sprockets/railtie' 

require 'rails/all' 

這已經失去了,因爲我們沒有使用整個Rails框架和有利於Mongoid的關閉ActiveRecord的。問題在於,在將Rails更新到新版本時,您可能不會注意到rails/all正在更改其內容。

相關問題