修改服务静态资源的路径

时间:2013-07-02 21:38:35

标签: java tomcat spring-mvc web.xml

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

假设我的webapp中有以下路径的资源:

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

我希望客户能够通过以下网址访问它:

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

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

2 个答案:

答案 0 :(得分:3)

您是否看过课程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

答案 1 :(得分:1)

定义

  

<mvc:resources mapping="/v1/client/**" location="/client/" />

在dispatcher-servlet配置上。

谢谢!