【问题标题】:Can't get custom error pages to work in Padrino无法让自定义错误页面在 Padrino 中工作
【发布时间】:2015-05-26 19:29:23
【问题描述】:

我开始用 padrino 建立一个网站。目前我的应用程序的主要类是世界上最简单的东西:

class App < Padrino::Application
  enable :sessions

  get :index do
    send_file 'public/view/index.html'
  end

  error 404 do
    send_file 'public/view/errors/404.html'
  end
end

所以视图只是简单的 html - 其背后的想法是使用 angularjs 来呈现由 rest api 提供的所有东西。我想这是相当标准的。

我的问题是——虽然它可以很好地呈现主页(localhost:3000/),但自定义错误根本不起作用;假设我尝试 localhost:3000/test - 而是呈现标准的“Sinatra 不知道这个小曲”页面。

我正在使用 WEBrick 1.3.1 运行 padrino 0.12.4。我在这里做错了什么?

【问题讨论】:

    标签: ruby sinatra padrino


    【解决方案1】:

    我相信这里发生的事情是,当您转到 localhost:3000/test 时,您的 Sinatra 应用程序正在您的 App Controller 下寻找“测试”操作。显然没有找到这个动作,因为它没有被列为路线!因此明确告诉 Sinatra 如果没有找到 diddy 则返回 404 页面:

    error Sinatra::NotFound do
      content_type 'text/plain'
      [404, 'Not Found']
    end
    

    【讨论】:

    • 实际上是的,只需将 '404' 替换为 'Sinatra::NotFound' 正是我想要的。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-02-10
    • 2019-03-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多