我正在編寫一個簡單的Rails3應用程序,該應用程序運行在一個子網址中,除了一個問題外,它運行良好。如果我沒有在任何控制器的「索引」方法的URL末尾添加「.html」擴展名,請求將返回空白頁。無論我要求哪個控制器,「索引」方法總是返回完全空,包括如果我捲曲的URL。我在每個控制器中都有一個「index.html.erb」文件,它具有簡單但完整的HTML,如果我在URL中包含「.html」擴展名,一切正常。下面是一些例子URL及其結果:Rails3無法正確呈現頁面
http://my.application.url/appname/pages -- returns a blank page.
http://my.application.url/appname/pages.html -- returns the correct HTML page
http://my.application.url/appname/pages/new -- returns the correct HTML form
http://my.application.url/appname/pages/1 -- returns the correct HTML page
http://my.application.url/appname/pages/1/edit -- returns the correct HTML form
我的路線文件看起來與此類似:
My::Application.routes.draw do
scope "/appname" do
resources :posts
resources :pages
root :to => 'home#index'
end
end
我控制器適用部分類似於這樣:
class PagesController < ApplicationController
def index
@pages = Page.all
respond_to do |format|
format.html
end
end
...
end
由於我說,索引方法是唯一有這個問題的方法。我嘗試了所有我能想到的方法,包括在application.rb中添加My::Application.default_url_options = {:format => "html"}
(除了當我需要從控制器執行redirect_to時工作),並且我無所適從。該應用程序使用Thin作爲應用服務器,後者在Apache 1.3後面進行代理(我不幸地無法更改,因爲直接點擊Thin服務器導致同樣的問題,這似乎並不是問題)。任何想法將不勝感激。
剛剛確認問題不是細。 Webrick中存在同樣的問題 – user1877592
不完全是答案(更多的解決方法),但是從資產管道中刪除我的[controllername] .css.scss文件解決了問題。我已經使用Rails很多年了,但不幸的是我還不完全熟悉Rails 3中新的資產管道。這種行爲似乎很奇怪,對我來說也有點不直觀,就好像「約定配置」範式被稀釋了一樣。 – user1877592