如何强制静态资源(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/