java - 修改静态资源的服务路径

标签 java tomcat spring-mvc web.xml

如何强制静态资源(HTML、CSS、JS)在与/webapp/目录中指定的路径不同的路径下提供服务?

假设我的 web 应用程序中的以下路径有一个资源:

/src/main/webapp/client/mypage.html

我希望客户端能够从以下 URL 访问它:

/myapp-context/v1/client/mypage.html

如何在我的 web.xml 中为这些资源指定公共(public)根 URL(“v1”)?是否有一个我可以配置的默认过滤器或静态资源 servlet 来启用此行为?或者,我可以为整个应用程序指定上下文根之外的基本 URL 吗?

最佳答案

你看过课了吗org.springframework.web.servlet.DispatcherServlet

web.xml中:

<servlet>
 <servlet-name>dispatcher</servlet-name>
 <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
 <load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
 <servlet-name>dispatcher</servlet-name>
 <url-pattern>/</url-pattern>
</servlet-mapping>

dispatcher-servlet.xml中:

<mvc:resources mapping="/v1/client/*.html" location="/client/pages/" />
<mvc:resources mapping="/v1/client/*.js" location="/client/js/" />
<mvc:resources mapping="/v1/client/*.css" location="/client/css/" />

如果您想使用 base 标记,请参阅 relative paths .

关于java - 修改静态资源的服务路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17436252/

相关文章:

Tomcat 将 Windows 证书存储用于 SSL

java - 服务器在向 Spring Controller 发出几次请求后挂起

spring-mvc - Tomcat 或 JBoss 托管 1 个具有多个网站的 Web 应用程序

spring-mvc - Tomcat 8 - 在类路径上未检测到 Spring WebApplicationInitializer 类型

java - Spring MVC Controller 方法参数如何工作?

spring - Tomcat 7.0.32 +Spring MVC Servlet 3 异步不工作

java - Hibernate无法合并并持久化实体类的两个实例

java - 如何匹配java正则表达式中注释 block 之间的文本?

java - Selenium 化物 SLF4J : Failed to load class "org.slf4j.impl.StaticLoggerBinder" error. 有什么想法吗?

java - 如果我不需要终止的任何值(value),我该如何终止流?