2012-10-15 38 views
2

我有一個巨大的Rails應用程序正在運行退出,但我有一個谷歌的問題,因爲應用程序的一些討厭的行爲。當我打電話爲什麼rails應用程序在某些情況下返回406而不是404?

http://railsapp.com/index.html

哪個犯規存在的應用程序返回一個404錯誤是正確的。但是,當我打電話

http://railsapp.com/index.htm

它返回一個406錯誤至極的心不是很大。每次請求具有.htm擴展名的非現有文件時,都會出現此問題。我如何讓我的rails應用程序返回404而不是406?

回答

1

試試這個

respond_to do |format|  
    format.html {} 
    format.js {}   
    end 

因爲在你的「#{RAILS_ROOT} /公/ ..」 406.htm文件是不是他們的,這樣它給錯誤和404.html文件公用文件夾中可用,因此這是電話。

在您的{RAILS_ROOT} /公開這些文件是他們

1. 404.html 
2. 422.html 
3. 500.html 

如果使用這些文件,那麼它稱之爲否則會給錯誤,如文件不存在。

,你也可以做到這一點。在ApplicationController中定義的方法,如:讓你得到錯誤壬現有文件

def render_404 
    render :file => "#{RAILS_ROOT}/public/404.html", :status => 404 
end 
1

406.htm文件不在您的公共文件夾中。按照您的佈局在公用文件夾中添加406.html文件,然後嘗試。

相關問題