spring mvc web项目引入文件, 启动项目报错,错误:引入的图片、js和css文件路径找不到的问题

spring-mvc web项目引入文件, 启动项目报错,错误:引入的图片、js和css文件路径找不到的问题

错误原因是项目采用注解的方式,使用spring mvc需要配置其使用的servlet.在web.xml中配置如下信息:

<servlet> 
    <servlet-name>springMVC</servlet-name> 
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> 
    <load-on-startup>1</load-on-startup> 
</servlet> 
<servlet-mapping> 
    <servlet-name>springMVC</servlet-name> 
    <url-pattern>/</url-pattern> 
</servlet-mapping>

这是会影响到静态资源文件的获取,这样就需要有这个标签来帮你分类完成获取静态资源的责任。
解决方案:
第一种:
在spring-mvc对应的配置文件中加上如下代码:

<mvc:annotation-driven />
<mvc:resources mapping="/scripts/**" location="/scripts/" />
<mvc:resources mapping="/styles/**" location="/styles/" />
<mvc:resources mapping="/images/**" location="/images/" />
<mvc:default-servlet-handler />

小编在解决这个问题时就遇到了问题,当时配置文件少了第一句 项目启动还是报js、css和图片文件路径找不到的错,加上后启动项目正常访问了,引入文件也都可以访问了。

第二种:
就是web.xml种配置静态资源访问

<servlet-mapping>
    <servlet-name>default</servlet-name>
    <url-pattern>*.jpg</url-pattern>
</servlet-mapping>
<servlet-mapping>
    <servlet-name>default</servlet-name>
    <url-pattern>*.js</url-pattern>
</servlet-mapping>
<servlet-mapping>
    <servlet-name>default</servlet-name>
    <url-pattern>*.css</url-pattern>
</servlet-mapping>

指明对于如上资源文件不采用spring的过滤器 关于default是tomcat配置的一个servlet,“DefaultServlet被定义在$CATALINA_HOME/conf/web.xml中,
配置文件中被定义的东西会在Tomcat启动的时候 被加载,对所有的webapp都有效。DefaultServlet在Tomcat中主要是做目录列表(Directory Listing)用

猜你喜欢

转载自blog.csdn.net/qq_22764659/article/details/81480790