如何从taglib升级Grails错误或g:inculude到错误页面结束?

我在我的UrlMapings中有一个“500”错误的映射,它会呈现一个自定义错误页面并且工作正常,除非在自定义taglib实现中发生异常或者部分包含在g:include中.

如果发生这种情况,错误页面将在有问题的标记或g:include所在的位置呈现为环绕布局的一部分.

我理解这是一个预期的行为,但有没有办法强制这样的错误导致重定向或渲染错误页面在父布局之外,而不是以包含部分呈现内容和几个错误页面部分的页面结束?

最佳答案 我通常在应用程序之外解决这个问题:在生产中我通常在我的tomcat前面有一个nginx.这将拦截所有页面,在页眉中有500个http代码并显示一个静态错误页面:

server {
    [..]

    location / {
            proxy_pass        http://localhost:8080/grailsAppName;
            proxy_set_header  X-Real-IP  $remote_addr;
            proxy_set_header Host $host;
    }

    error_page 500 502 503 504  /500.html;

    location = /500.html {
            root  /var/www/errors-grailsAppName;
    }
 }

这样,子视图是否被破坏或动作代码本身无关紧要.

点赞