oli*_*art 11 ruby routing sinatra
我有一个基本的sinatra应用程序,从目录中呈现文件.如果页面不存在,我想要的是返回404.目前它引发500错误.
get '/:page' do
erb :"pages/#{params[:page]}", layout: :"layouts/application"
end
Run Code Online (Sandbox Code Playgroud)
Jor*_*est 21
试试这个 ;)
# 404 Error!
not_found do
status 404
erb :oops
end
Run Code Online (Sandbox Code Playgroud)
用自己喜欢的名字(oops.erb例如我的名字)制作一个404页面,这应该可以正常工作.
not_found是Sinatra的错误处理助手,用于获取它返回的错误500和404未找到的错误.然后,您可以使用它更改HTTP状态和相应的视图.查看所有Sinatra错误处理程序的文档:它们非常有用!
你可以这样做:
get '/:page' do
requested_erb = File.join(root, 'pages', params[:page])
pass unless File.exists?(requested_erb)
erb :"#{requested_erb}", :layout: :"layouts/application"
end
Run Code Online (Sandbox Code Playgroud)
我还没有对此进行测试,因此上面的代码可能存在一些问题,但这是我脑海中的总体想法。
| 归档时间: |
|
| 查看次数: |
13206 次 |
| 最近记录: |