Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/spring-mvc/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Spring MVC MVC:资源位置属性_Spring_Spring Mvc - Fatal编程技术网

Spring MVC MVC:资源位置属性

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的位置属性。这是干什么用的

如果我在位置VAADIN/themes/themes/下有我的静态资源。。。(在几个子文件夹、图像、css、js中)位置和映射属性的正确值应该是什么

当我在配置中有以下内容时:

<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/”

也许您已经配置了一些handlermapping,这些handlermapping在resourcehttprequestresolver之前启动(或者不管它叫什么) 检查您是否没有AbstractUrlHandlerMapping或任何其他handlermapping可以使用order属性停止映射链。 或按以下顺序配置资源冲突解决程序:


设置用于提供静态内容的处理程序。映射属性 设置为/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>