如何强制静态资源(HTML,CSS,JS)以不同于/ webapp /目录中指定的路径提供服务?
假设我的webapp中有以下路径的资源:
/src/main/webapp/client/mypage.html
我希望客户能够通过以下网址访问它:
/myapp-context/v1/client/mypage.html
如何在web.xml
中为这些资源指定公共根URL(“v1”)是否有可以配置的默认过滤器或静态资源servlet来启用此行为?或者,我可以在上下文根目录之外指定整个应用程序的基本URL吗?
答案 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配置上。
谢谢!