java - 静态资源 URI 中的上下文路径,我真的需要指定它吗?

标签 java spring-mvc contextpath

我有一个简单的网络应用

webapp
   static
       images
            - a.gif
       pages
            - test.html
   WEB-INF
       pages
            - test.jsp

在test.html中,有

<img src="/static/images/a.gif"/>

问题是在我将 uri 更改为

之前图像不会显示
<img src="/web app name/static/images/a.gif"/>

但我在 URI 加载 test.html

http://server/web app name/static/pages/test.html

我在我的 web.xml 中配置了静态资源映射,如下所示。

<servlet>
    <servlet-name>springWeb</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <init-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>classpath:applicationContext-web.xml</param-value>
    </init-param>
    <load-on-startup>1</load-on-startup>
</servlet>

<servlet-mapping>
    <servlet-name>springWeb</servlet-name>
    <url-pattern>/</url-pattern>
</servlet-mapping>

<servlet>
    <servlet-name>resourceServlet</servlet-name>
    <servlet-class>org.springframework.js.resource.ResourceServlet</servlet-class>
    <load-on-startup>1</load-on-startup>
</servlet>

<servlet-mapping>
    <servlet-name>resourceServlet</servlet-name>
    <url-pattern>/static/*</url-pattern>
</servlet-mapping>

我错过了什么吗?我确实希望在开发阶段将这些静态资源保留在应用程序中,而不是将它们移动到 HTTP 服务器。

非常感谢。

最佳答案

出于这个原因,最好使用 spring:url 标记或 JSTL c:url 标记将 URL 包装在 HTML 中。这些标签将自动添加上下文路径。

例如:

<img src="<spring:url value='/static/images/a.gif'/>"/>

或者,您可以在开发中使用“”的上下文路径。这样你的网址就会与生产相匹配。每个 servlet 容器的完成方式都不同 - 例如,对于 Tomcat,您可以将应用程序部署到 webapps/ROOT。

关于java - 静态资源 URI 中的上下文路径,我真的需要指定它吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5066061/

相关文章:

redirect - 如何在 JBoss 中从 "my web application"上下文自动定向到 "root (/)"?

java - 如何查找远程服务器 URL 的基础或上下文

java - 在 JavaFX 的 ImageView 中显示文件的图标图像

java.net.SocketException : Connection reset by peer: socket write error When serving a file 异常

java - org.springframework.security.authentication.InternalAuthenticationServiceException : Could not get JDBC Connection

java - web.xml 无法正确标记 spring ServletDispatcher

eclipse - 如何在servlet jsp中设置相对URL

java - 在tomcat8中启动.war servlet

java - 如何使用 Java 将 MongoDB 中的数据保存到字符串中?

spring-mvc - 获取mybatis中插入记录的自动生成的key