【问题标题】:Grails running in Jetty renders 404 error page without layout template在 Jetty 中运行的 Grails 在没有布局模板的情况下呈现 404 错误页面
【发布时间】:2012-03-11 18:44:41
【问题描述】:

我有一个 Grails 2.0.1 应用程序。我设置了以下 UrlMapping:

"/"(controller:"home")
"500"(view:'/error/serverError')
"404"(view:'/error/notFound')

这是我的 notFound.gsp 页面:

<%@ page contentType="text/html;charset=UTF-8" %>
<html>
  <head>
      <meta name="layout" content="main"/>
      <title>404 Not Found</title>
  </head>

  <body>
      <h2>Page not found</h2>
      <p>Back to <a href="${createLink(uri:'/')}">homepage</a></p>
  </body>
</html>

在开发(在 Tomcat 下)时,404 错误页面会正确呈现主布局模板。 但是,当我在 Jetty 7.6.2 下将战争部署到生产环境并浏览到一个不存在的 url 时,我得到了 404 错误页面,但 没有 主布局模板。

所以 Grails 2.0.1 似乎不能很好地与 Jetty 配合使用,并且在遇到 404 错误时应用程序无法呈现模板。

谁能猜到我为什么会遇到这个问题?我在网上找不到任何东西。

谢谢

【问题讨论】:

标签: grails jetty


【解决方案1】:

你试过这个吗:http://www.javathinking.com/2007/12/404-with-grails/

您可以重定向到错误控制器,而不是直接转到 gsp,而错误控制器又会重定向到不同的错误页面。

【讨论】:

  • 感谢您的回复。实际上,您链接的帖子正是关于我的问题。但我的问题特别在于码头,因为在 tomcat 上,即使 urlmapping 直接指向 gsp,它也能正常工作。在码头上,它既不能渲染布局,也不能使用指向控制器的 urlmapping。似乎是码头问题。
【解决方案2】:

我手动包装了错误页面

它并不优雅,但很有效。

http://grails.org/doc/latest/ref/Tags/applyLayout.html

【讨论】:

  • 嗯,这似乎不再起作用 - 似乎仍然没有应用布局(和/或 Grails 资源)。
猜你喜欢
  • 2012-04-06
  • 2011-05-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-05-07
  • 1970-01-01
  • 2013-04-03
  • 1970-01-01
相关资源
最近更新 更多