Spring MVC MVC:资源位置属性
伙计们,我也有加载静态资源的问题 我想我把一切都安排妥当了。但是我不理解mvc:resources的位置属性。这是干什么用的 如果我在位置VAADIN/themes/themes/下有我的静态资源。。。(在几个子文件夹、图像、css、js中)位置和映射属性的正确值应该是什么 当我在配置中有以下内容时:Spring MVC MVC:资源位置属性,spring,spring-mvc,Spring,Spring Mvc,伙计们,我也有加载静态资源的问题 我想我把一切都安排妥当了。但是我不理解mvc:resources的位置属性。这是干什么用的 如果我在位置VAADIN/themes/themes/下有我的静态资源。。。(在几个子文件夹、图像、css、js中)位置和映射属性的正确值应该是什么 当我在配置中有以下内容时: <mvc:resources location="/VAADIN/" mapping="/VAADIN/**"/> 我收到HTTP Status 404,例如,location是放置
<mvc:resources location="/VAADIN/" mapping="/VAADIN/**"/>
我收到HTTP Status 404,例如,
location
是放置资源的文件夹的位置。作者写道:
从中提供静态内容的资源位置,在Spring资源模式中指定。
每个位置必须指向一个有效的目录。可以将多个位置指定为逗号分隔的列表,
并且将按照指定的顺序检查给定资源的位置。例如,值为
“/,classpath:/META-INF/public web resources/”将允许同时从web应用程序提供资源
根目录和包含/META-INF/public web resources/目录的类路径上的任何JAR,
web应用根目录中的资源优先
另一方面,映射
属性是:
当前Servlet上下文中的URL映射模式,用于服务来自此处理程序的资源,例如“/resources/**”
因此,
mapping
指定在什么uri下可以访问web上的资源,而location
指定这些资源在磁盘上的位置。我猜您没有正确引用位置
- 您的VAADIN文件夹是否在
WAR的顶级目录(其中
案例
(正确)location=“/VAADIN/”
- 或者是在WEB-INF/类中(其中
情况一定如此
)location=“classpath:/VAADIN/”
设置用于提供静态内容的处理程序。映射属性 设置为/resources/**,其中包含一个Ant样式的通配符,以指示路径 必须以/resources开头,但可以包括其任何子路径。位置属性 指示要提供服务的文件的位置。如这里配置的,任何请求 以/resources开头的路径将由/resources自动提供服务 应用程序根目录下的文件夹。因此,我们所有的图像、样式表、, JavaScript和其他静态内容需要保存在应用程序的/资源中
文件夹。@coffy嗨,我想每个人都可以阅读文档。不,他们不能。否则这个网站就不存在了:-)但说真的:我想说,那些试图免费解决你问题的顶级开发者应该得到更多的尊重,不是吗?@Sean Patrick Floyd嗨,我不是故意不尊重任何人。但我认为用Java/xsd/whatever文档作为答案并没有多大帮助将其视为批评,而不是对开发人员的某种攻击。我也是:)谢谢你更新的答案@Bozho,如果你能详细说明我在配置文件中的部分,那就太好了。thx@coffy-文档通常包含所有答案。但我同意经常有人需要指出或总结them@coffy是的,我们在这里都是开发人员,但是a)bozho是最棒的,他很少出错b)Spring文档非常庞大。查找相关部分有时很棘手,因此发布文档是回答Spring问题的一个非常有效的部分。您的应用程序部署为ROOT?是的,应用程序部署在tomcat中。静态内容在webapps\ROOT\VAADIN\下……给定的信息看起来一切正常。也许问题出在别的地方
ResourceHttpRequestHandler#6
看起来很奇怪-你真的有6个吗?可能不止一个mvc:annotation-driven
?或者他没有将其部署为ROOT,但省略了上下文路径。是的,我的VAADIN文件夹位于WAR的顶级目录中,应用程序在tomcat中部署为ROOT
17:15:02.897 [http-8080-2] DEBUG o.s.w.s.m.a.DefaultAnnotationHandlerMapping - Rejected bean name 'org.springframework.web.servlet.resource.ResourceHttpRequestHandler#6': no
URL paths identified
<!-- Maps all other request URLs to views -->
<bean id="viewMappings" class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
<property name="defaultHandler">
<!-- Selects view names to render based on the request URI: e.g. the "/Home" URL would map to the view named "Home" -->
<bean class="org.springframework.web.servlet.mvc.UrlFilenameViewController" />
</property>
<!-- This will prevent the mvc:resources to handle requests. Unless, of course, you specify an order in the mvc:resources order attribute
<property name="order" value="3" / Removing this will place this just after The ResourceHttpRequestHandler-->
</bean>