1

我的 .JSP 页面的样式设置为:

<link rel="stylesheet" type="text/css" href="resources/styles/main.css" />

它适用于链接:

  • 本地主机/网络应用程序
  • 本地主机/webapp/目录

但是当我尝试“ localhost/webapp/dir/0 ”时,我得到一个 404 错误代码。

servlet-context.xml

<mvc:resources mapping="/resources/**" location="/resources/" />
4

2 回答 2

1

您的路径是相对的,因此如果您以不同的“深度”呈现您的 JSP 页面,链接将失败。为避免这种情况,请通过添加前导斜杠来使用绝对 URL 路径。Spring/servlet 容器可以自动为您插入 URL 的上下文部分,因此如果您将其部署为“ROOT”webapp,该应用程序将正常工作。为此,您可以使用<c:url>标签,但我更喜欢少写一行 JSP 代码:

<link rel="stylesheet" type="text/css" href="${pageContext.request.contextPath}/resources/styles/main.css" />
于 2012-09-04T22:39:50.663 回答
1

Nickdos 的回答是正确的,但我通常以不同的方式解决这个问题。您可以使用BASE 标签。您在每个页面的 head 部分声明它,所有相关链接 ( <a href>) 和资源 ( <script>, <img>, ...) 都将基于此 href。所以,使用 EL 你可以做这样的事情(对不起,我现在不能尝试):

<base href="${request.scheme}://${request.serverName}:${request.serverPort}${request.contextPath}/" />

于 2012-09-05T09:19:11.393 回答