将所有.html文件与Rails中的高电压相匹配

时间:2012-10-07 20:21:16

标签: ruby-on-rails ruby-on-rails-3 routes ruby-on-rails-3.2 static-html

如何在Rails中将所有.html个文件与High Voltage的控制器进行匹配,以便最后在.html处显示的任何网址在我的视图中打开相应的pages/<page>.html.erb文件目录?当然,我可以用High Voltage的page_path命名路由来引用它吗?

1 个答案:

答案 0 :(得分:0)

我认为这不可能,或者至少是微不足道的。 URL的“后缀”部分映射到请求的格式,例如/pages/document.html,/pages/document.json,/pages/document.xml,/pages/document.csv等。是Rails路由的基础,而.html是默认格式,因此/ pages / document默认返回HTML。有可能创建一个路线,例如:

match '*.html' => 'high_voltage/pages#show', as: :static

我还没有测试过它。

如果你把匹配放在底部,可能就是这样,即使传入的网址上有.html,它也会匹配其他内容。相反,如果你把它放在顶部,它可能匹配没有后缀的所有东西。应该很容易测试它。

我的高压路线:

get '/:id' => 'high_voltage/pages#show', as: :static

位于我的路线底部,就在根网址之前,所以它基本上就是全部。只要我的静态html文件路径与我的RESTful路由不同,它就可以正常工作。

否则,如果这些静态URL可以接受重定向(永久),您可以将匹配放在上游HTTP服务器中,如nginx或apache,并将其重定向到已知的高压路径,如/pages.