0

将 Lift 应用部署到 tomcat 容器时,它会自动将上下文路径伪装成所有以“/”开头的<a>s 。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 文件无法加载。

如何解决?

4

1 回答 1

1

我找到了解决方案:

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

请注意req.fixHtml(),如果可能,它将在链接之前添加上下文路径。

于 2013-06-28T06:03:20.077 回答