在Rails 2.3應用程序中,我有一個SitemapController
和sitemap
操作,該操作會創建一個可讀的站點地圖頁面,以及路由文件中的路徑。在公共文件夾中有搜索引擎的sitemap.xml
文件。問題是http://mysite/sitemap
服務於sitemap.xml
,而不是路由到控制器。如果我刪除sitemap.xml
,那麼它路由到控制器就好了。如何讓Rails路由到控制器而不是公用文件夾中的靜態文件?
在其他幾個非常相似的站點上,我們有完全相同的安排,但對於那些存在sitemap.xml
的確不是而是阻止Rails路由到控制器。在這些站點上,如預期的那樣,http://mysite/sitemap
到SitemapController#sitemap
和http://mysite/sitemap.xml
的路由將提供靜態文件。但是我一直無法發現可能導致此問題的任何差異。
任何人都可以提出什麼可能會導致這一點,或者我可能會去調試它?
你是對的。問題原來是Apache配置文件不同。事實證明,我們需要禁用[MultiViews](http://www.modrails.com/documentation/Users%20guide%20Apache.html#_multiviews_mod_negotiation)以與Passenger兼容。 – Mori