【问题标题】:web.xml error-page does not display imageweb.xml 错误页面不显示图像
【发布时间】:2012-08-20 20:06:47
【问题描述】:

我有一个 error.html 页面,例如,当用户遇到 Error404 时,我想重定向到该页面。下面的工作:

<error-page>
    <error-code>404</error-code>
    <location>/error404.jsp</location>
</error-page>

但是,我的 error404.jsp 文件包含在用户被重定向时不会显示的图像。如果我只是输入 URL,则会显示带有图像的完整页面。但是,如果用户尝试执行报告错误 404 的操作,则会显示 error404.jsp 文件而不显示图像。

我也尝试了 error404.html 但我遇到了同样的问题...

你知道为什么会这样吗?

非常感谢 埃娜

【问题讨论】:

    标签: web.xml custom-error-pages


    【解决方案1】:

    当呈现错误页面时,其内容会在 HTTP 响应中返回,而无需重定向。这意味着浏览器仍然会在出现错误的请求的 URL 上下文中“看到”它。因此,任何相对资源链接(图像、css 等)都将相对于当前页面的 URL。

    所以如果你有以下设置:

    • image1.gif 在图片文件夹中
    • error404.jsp 将图像引用为 "../images/image1.gif"

    您会发现输入http://yourserver.com/YourContextRoot/error404.jsp 可以正常工作,但是当您使用http://yourserver.com/YourContextRoot/path1/path2/missingPage 时,它会尝试在错误的路径中查找图像(即在/YourContextRoot/path1/images/image1.gif 下)。

    解决方案是使用 JSP EL 或 scriptlet 创建相对于服务器的链接(即以“/”开头),方法是包含 context-root:

    <img src="${pageContext.request.contextPath}/images/image1.gif" />
    

    我希望这有效!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-03-13
      • 1970-01-01
      • 1970-01-01
      • 2022-06-11
      • 1970-01-01
      • 1970-01-01
      • 2010-09-25
      • 2021-02-28
      相关资源
      最近更新 更多