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