如果我使用`S.render`,如果解决它,Lift将不会在链接之前添加上下文路径?

时间:2013-06-28 03:37:44

标签: scala lift

当将电梯应用程序部署到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文件无法加载。

如何解决?

1 个答案:

答案 0 :(得分:1)

我找到了解决方案:

val content = req.fixHtml(S.render(<lift:embed what="500"/>, req.request))

注意req.fixHtml(),如果可能的话,它会在链接的前提路径前加上。