当将电梯应用程序部署到tomcat容器时,它会自动假装其<a>
以“/”开头的所有href
的上下文路径。 (电梯如何做到这一点?)
但在我的Boot.scala
中,我想显示一个自定义的500页,我使用S.render
来呈现模板,并发现链接未被处理。
我的代码:
LiftRules.exceptionHandler.prepend {
case (runMode, req, exception) =>
logger.error("Failed at: " + req.uri, exception)
val content = S.render(<lift:embed what="500"/>, req.request)
XmlResponse(content.head, 500, "text/html", req.cookies)
}
您可以看到第S.render(<lift:embed what="500"/>, req.request)
行
它将呈现webapp/500.html
,但不会预先设置上下文路径。当我将它部署到tomcat时,页面无法正确显示,因为js / css文件无法加载。
如何解决?
答案 0 :(得分:1)
我找到了解决方案:
val content = req.fixHtml(S.render(<lift:embed what="500"/>, req.request))
注意req.fixHtml()
,如果可能的话,它会在链接的前提路径前加上。