如何根据环境进行一些URL映射?
当得到HTTP状态码500时,我想根据运行环境显示2个不同的页面。
在开发模式,我想显示 stackStrace 页面(如默认的 Grails 500 错误页面),在生产模式,我想显示正式的“内部错误”页面。
这可能吗?我该怎么做?
When getting an HTTP status code 500, I want to display 2 different pages according to the running environment.
In development mode, I want to display a stackStrace page (like the default Grails 500 error page) and in production mode, I want to display a formal "internal error" page.
Is it possible and how can I do that ?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
您可以在
UrlMappings.groovy
grails.util.GrailsUtil
中进行环境特定的映射来救援它并不漂亮,但我认为它会解决您的问题
例如
You can do environment specific mappings within
UrlMappings.groovy
grails.util.GrailsUtil
to the rescueIts not pretty, but I think it will solve your issue
E.g
可能有一种更干净的方法来做到这一点,但我需要将错误代码映射到控制器并处理那里的逻辑:
然后创建相应的控制器(grails-app/conf/controllers/ErrorsController.groovy)
:需要在 grails-app/views/errors 中创建相应的 GSP(accessDenied.gsp、notFound.gsp 等)以及新的 grails-app/views/errorProd.gsp。通过路由到所有错误代码的控制器方法,您可以更轻松地在将来向其他错误代码处理程序添加逻辑。
There may be a cleaner way to do this, but I'd got with mapping the error code to a controller and handling the logic there:
and then create the corresponding controller (grails-app/conf/controllers/ErrorsController.groovy):
You'll need to create the corresponding GSPs in grails-app/views/errors (accessDenied.gsp, notFound.gsp, etc.) and also the new grails-app/views/errorProd.gsp. By routing to a controller method for all error codes you make it easier to add logic to the other error code handlers in the future.