gpt4 book ai didi

spring - SpringMVC 是否可以配置为处理所有请求,但排除静态内容目录?

转载 作者:IT老高 更新时间:2023-10-28 13:02:14 26 4
gpt4 key购买 nike

如果我将 Spring 应用程序映射为处理所有传入请求 ('/*'),则静态内容请求会返回 404。例如,对“myhost.com/css/global.css”的请求将返回 404,即使在 Spring 拦截请求时资源存在。

替代方法是将 SpringMVC 映射到子目录(例如 '/home/'),但在这种情况下,您必须在应用程序的所有链接中传递此目录。有没有办法将 SpringMVC 映射到“/”并从处理中排除一组目录?

我当前的 web.xml 配置是:

<servlet>
<servlet-name>springApp</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<load-on-startup>2</load-on-startup>
</servlet>

<servlet-mapping>
<servlet-name>springApp</servlet-name>
<url-pattern>/home/*</url-pattern>
</servlet-mapping>

理想情况下,我希望映射如下所示:

 <servlet-mapping>
<servlet-name>springApp</servlet-name>
<url-pattern>/*</url-pattern>
<exclude>/css/*,/js/*</exclude>
</servlet-mapping>

这种事情可能吗?

最佳答案

注意:此答案仅适用于 Spring 3.0.4+

(顺便说一句,这个问题也在这里处理过:Spring serving static content with mvc:resources, invalid xsd)

查看 Spring subversion samples repository 中的 Spring mvc-showcase 项目.它准确地显示了您想要做什么,即您可以描述 DisapatcherServlet 不会处理的静态资源。请参阅文件 /mvc-showcase/src/main/webapp/WEB-INF/spring/appServlet/servlet-context.xml。这是我如何处理这些排除的片段,其中 JS、CSS 和图像位于应用程序上下文根中(MVC 命名空间映射到 mvc:

<!-- resources exclusions from servlet mapping -->
<mvc:resources mapping="/css/**" location="/css/" />
<mvc:resources mapping="/images/**" location="/images/" />
<mvc:resources mapping="/js/**" location="/js/" />

关于spring - SpringMVC 是否可以配置为处理所有请求,但排除静态内容目录?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1234298/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com