我的一位客戶希望他的新Rails應用程序看起來更像他的傳統網站。他想知道我是否可以強制網址擁有文件擴展名,最好是.html
。Rails 3.1強制.html而不是擴展
我不想硬編碼routes.rb
擴展爲
match ':controller/:action/:id.html'
(或類似),因爲客戶機也希望有這需要使用的.:format
一個respond_to
風格的JSON API。
可以這樣做嗎?
我的一位客戶希望他的新Rails應用程序看起來更像他的傳統網站。他想知道我是否可以強制網址擁有文件擴展名,最好是.html
。Rails 3.1強制.html而不是擴展
我不想硬編碼routes.rb
擴展爲
match ':controller/:action/:id.html'
(或類似),因爲客戶機也希望有這需要使用的.:format
一個respond_to
風格的JSON API。
可以這樣做嗎?
正如馬蒂亞斯瓦德曼建議,在config/application.rb
加:
AppName::Application.default_url_options = { :format => "html" }
而且還改變了config/routes.rb
到:
root :to => 'pages#home', :defaults => { :format => "html" }
Im no Rails路由專家,但我試圖通過更改默認的URL選項強制HTML格式,至少URL助手接口現在生成.html網址,這是一個開始。
的config/application.rb中(底部)
AppName::Application.default_url_options = {:format => "html"}
這也將'?format = html'添加到'root_url'。 –
嗯接縫爲我工作,很奇怪。當你運行'rake routes'時,你看到......(:格式)嗎? –
'rake routes'的輸出:'/:action(.:format){:controller =>「pages」,:action =>「:action」}'和'root/{:controller =>「pages」,:行動=> 「家」}'。 (我不能將它分解成多行註釋。)使用'link_to ...'工作,但使用'<%= root_url%>'返回'http:// server:3000 /?format = html' –