我的.JSP页面样式设置为:
<link rel="stylesheet" type="text/css" href="resources/styles/main.css" />
它适用于链接:
但是当我尝试“ localhost / webapp / dir / 0 ”时,我收到了404错误代码。
servlet的context.xml中:
<mvc:resources mapping="/resources/**" location="/resources/" />
答案 0 :(得分:1)
您的路径是相对的,因此如果您以不同的“深度”呈现JSP页面,则链接将失败。要避免这种情况,请通过添加前导斜杠来使用绝对URL路径。 Spring / servlet容器可以自动为您插入URL的上下文部分,以便在将其部署为“ROOT”Web应用程序时该应用程序将起作用。为此,您可以使用<c:url>
标记,但我更喜欢用以下代码编写一行JSP代码:
<link rel="stylesheet" type="text/css" href="${pageContext.request.contextPath}/resources/styles/main.css" />
答案 1 :(得分:1)
Nickdos的回答是对的,但我通常会以不同的方式解决这个问题。您可以使用BASE tag。您在每个页面的head部分声明它,所有相关链接(<a href>
)和资源(<script>, <img>, ...
)将基于此href。所以,使用EL你可以做这样的事情(对不起,但我目前无法尝试):
<base href="${request.scheme}://${request.serverName}:${request.serverPort}${request.contextPath}/" />