欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

spring mvc中页面资源无法读取css、js静态文件,404

程序员文章站 2022-04-07 21:18:29
...

问题描述:spring mvc中页面资源无法读取css、js静态文件,自行拼接静态资源的URL后发现报404。

http://localhost:8080/ds-sys-web/assets/css/ie10-viewport-bug-workaround.css

静态资源路径如下:
spring mvc中页面资源无法读取css、js静态文件,404
            
    
    博客分类: 问题总结 spring mvc静态资源404css js 
 

原因:assets/css/ie10-viewport-bug-workaround.css部分被spring拦截处理了,controller中没有配置requestmapping为assets/css/ie10-viewport-bug-workaround.css的控制器,自然报404了。

 

解决办法:

 

方法一:修改web.xml中spring拦截器的url-pattern,如下:

 

	<servlet>
		<servlet-name>SpringMVC</servlet-name>
		<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
		<init-param>
			<param-name>contextConfigLocation</param-name>
			<param-value>classpath:spring-mvc.xml</param-value>
		</init-param>
		<load-on-startup>1</load-on-startup>
		<async-supported>true</async-supported>
	</servlet>
	<servlet-mapping>
		<servlet-name>SpringMVC</servlet-name>
		<url-pattern>*.shtml</url-pattern>
<!-- 之前配置的为<url-pattern>/</url-pattern> -->
	</servlet-mapping>

 加一个后缀,使spring只处理以shtml结尾的url

 

解决!

 

方法二:在web.xml中添加过滤url:

	<servlet>
		<servlet-name>SpringMVC</servlet-name>
		<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
		<init-param>
			<param-name>contextConfigLocation</param-name>
			<param-value>classpath:spring-mvc.xml</param-value>
		</init-param>
		<load-on-startup>1</load-on-startup>
		<async-supported>true</async-supported>
	</servlet>
	<servlet-mapping>
		<servlet-name>SpringMVC</servlet-name>
		<url-pattern>/</url-pattern>
	</servlet-mapping>
	<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>  
	<servlet-mapping>  
	    <servlet-name>default</servlet-name>             
	    <url-pattern>*.html</url-pattern>  
	</servlet-mapping>
 解决!

 

方法三: 在spring配置文件中加入如下配置:

<mvc:resources location="/css/" mapping="/css/**" />

 解决!

 

 url-pattern有5种配置模式:

(1)/xxx:完全匹配/xxx的路径

(2)/xxx/*:匹配以/xxx开头的路径,请求中必须包含xxx。

(3)/*:匹配/下的所有路径,请求可以进入到action或controller,但是转发jsp时再次被拦截,不能访问jsp界面。

(4).xx:匹配以xx结尾的路径,所有请求必须以.xx结尾,但不会影响访问静态文件。

 

(5)/:默认模式,未被匹配的路径都将映射到刺servlet,对jpg,js,css等静态文件也将被拦截,不能访问。

 

  • spring mvc中页面资源无法读取css、js静态文件,404
            
    
    博客分类: 问题总结 spring mvc静态资源404css js 
  • 大小: 9 KB