springmvc静态资源访问问题(代码片段)

爱喝啤酒的猴子 爱喝啤酒的猴子     2022-12-06     398

关键词:

刚开始使用springmvc,出现了各种意想不到的问题。今天遇到了一个:在springmvc下静态资源无法被前端访问到,出现这种问题的原因如下:

在web.xml中配置springmvc的DispatcherServlet一般如下:

	<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>
如果将DispatcherServlet请求映射配置为"/",则Spring MVC将捕获Web容器所有的请求,包括在这里讨论的静态资源的请求,Spring MVC会将它们当成一个普通请求处理,因此找不到对应处理器将导致错误。

 解决的办法有两个:

1.在web.xml 中配置默认的servlet,具体方法如下:

<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 >*.png</url-pattern>   	     
	</servlet-mapping >
	<servlet-mapping >
		<servlet-name >default </servlet-name >             
		<url-pattern >*.woff</url-pattern>   		     
	</servlet-mapping >
	<servlet-mapping >
		<servlet-name >default </servlet-name >             
		<url-pattern >*.ttf</url-pattern>   		     
	</servlet-mapping >
	<servlet-mapping >
		<servlet-name >default </servlet-name >             
		<url-pattern >*.jpg</url-pattern>   		     
	</servlet-mapping >
根据请求文件的不同配置不同的后缀名。

注意:这种配置方式必须加载DispatcherServlet的配置之前,意思也就是在springmvc启动之前将静态资源的请求处理交给web容器来处理。

2.在springmvc-Servlet.xml中加入以下的配置:

 <mvc:resources location="/assets/" mapping="/assets/**"></mvc:resources>
解释:这段配置即配置静态资源的请求及路径对应的资源mapping表示请求的路径,location表示请求所对应的资源。也可以配置的更加详细:

  1.     <mvc:resources mapping="/javascript/**" location="/static_resources/javascript/"/>  
  2.     <mvc:resources mapping="/styles/**" location="/static_resources/css/"/>  
  3.     <mvc:resources mapping="/images/**" location="/static_resources/images/"/>  
建议将静态资源的请求路径和实际路径写成一样。


springmvc(代码片段)

目录SpringMVC(三)mvc:view-controller<mvc:annotation-driven/>form标签简介作用使用场景使用方式处理请求页面处理服务器表单校验为什么后端要做表单的校验JSRHibernateValidator常用校验规则访问静态资源概述url-pattern为/时访问静态资源J... 查看详情

springboot中如何访问静态资源?(代码片段)

....SpringBoot中的配置一.传统SSM中的配置我们常用的方式是在springmvc的配置文件中添加下面这段代码,让其过滤掉指定目录下的静态文件,不要拦截。<mvc:resourcesmapping="/js/**"location="/js/"/&g 查看详情

springmvc访问静态资源的三种方式

如果你的DispatcherServlet拦截*.do这样的URL,就不存在访问不到静态资源的问题。如果你的DispatcherServlet拦截“/”,拦截了所有的请求,同时对*.js,*.jpg的访问也就被拦截了。 目的:可以正常访问静态文件,不要找不到静态... 查看详情

springmvc和springboot静态资源处理详细总结(代码片段)

SpringMVC和springboot静态资源处理详细总结springmvc1)采用<mvc:default-servlet-handler/>2)采用<mvc:resources/>示例:springboot1)webapp目录下的资源文件2)springboot默认的静态资源目录:3& 查看详情

springmvc访问静态资源的三种方式

  如何你的DispatcherServlet拦截*.do这样的URL,就不存在访问不到静态资源的问题。如果你的DispatcherServlet拦截“/”,拦截了所有的请求,同时对*.js,*.jpg的访问也就被拦截了。 方案一:激活Tomcat的defaultServlet来处理静态... 查看详情

springmvc访问静态资源的三种方式(转)

本文转自:http://www.iigrowing.cn/springmvc_fang_wen_jing_tai_zi_yuan_de_san_zhong_fang_shi.html如何你的DispatcherServlet拦截*.do这样的URL,就不存在访问不到静态资源的问题。如果你的DispatcherServlet拦截“/”,拦截了所有的请求,同时对*.js,*.j 查看详情

关于静态资源问题(代码片段)

最近自己动手搭了个项目,项目跑起来后,发现访问不到静态资源,于是上网查阅资料,各种说法我各种尝试都行不通,后来看见某位博主说静态资源可以这样访问<linkhref="<c:urlvalue="/resources/ext/theme-triton/resources/theme-triton-all... 查看详情

springmvc处理请求释放静态资源的三种方式(代码片段)

方式一在SpringMVC的配置文件中添加如下语句<mvc:default-servlet-handler/>说明:当SpringMVC前端控制器对静态资源进行拦截后,在通过处理器映射器找不到相关处理器的情况下该请求会被tomcat中web.xml中默认配置的Servlet拦截。方式二S... 查看详情

如何让springmvc对静态资源文件的访问使用文件系统的相对路径

参考技术A这种问题一般是因为数据库文件所在的文件夹的访问权限不够,给这个文件夹设置允许everyone用户全部读写权限就可以了 查看详情

springmvc中处理静态资源的多种方法

...么问题来了,如何在页面中请求这些静态资源呢?还记得SpringMVC中的DispatcherServlet吗?它是SpringMVC中的前置控制器,若配置的拦截路径为“/”,那么所有的请求都将被它拦截。对静态资源的访问也属于一个 查看详情

(转)springmvc中处理静态资源的多种方法

...么问题来了,如何在页面中请求这些静态资源呢?还记得SpringMVC中的DispatcherServlet吗?它是SpringMVC中的前置控制器,若配置的拦截路径为“/”,那么所有的请求都将被它拦截。对静态资源的访问也属于一个 查看详情

处理静态资源

...源会有问题存在一般将DispatcherServlet请求映射配置为/,则SpringMVC将捕获当作一个普通请求处理,所以就会找不到对应的处理器发生错误3.如何解决?可以在SpringMVC配置文件中配置<mvc:default-servlet-handler/>的方式解决静态资源问题... 查看详情

springboot2---静态资源映射规则(代码片段)

静态资源映射规则1.静态资源访问1.0查看官网文档对应说明1.1静态资源目录1.2静态资源访问前缀请注意:加了静态资源访问前缀后,访问静态资源时,就必须加上前缀,这个多用于拦截器对静态资源的拦截1.3改变默认的... 查看详情

node访问服务器端静态资源(代码片段)

目录通过Node访问服务器端静态资源res的常用属性req的常用属性通过Node访问服务器端静态资源通过Node的http模块访问服务器端的静态资源(css文件、图像、html文件)。获取客户端请求的url地址//获取用户请求路径console.log(req.url)找到u... 查看详情

node访问服务器端静态资源(代码片段)

目录通过Node访问服务器端静态资源res的常用属性req的常用属性通过Node访问服务器端静态资源通过Node的http模块访问服务器端的静态资源(css文件、图像、html文件)。获取客户端请求的url地址//获取用户请求路径console.log(req.url)找到u... 查看详情

springboot-实现静态资源的访问(附:修改过滤规则静态资源位置)(代码片段)

一、默认静态资源访问策略(1)当我们使用 IntelliJIDEA 创建 SpringBoot 项目,会默认创建 classpath:/static/ 目录,我们直接把静态资源放在这个目录下即可。(2)我们直接在浏览器中输入“http://localhost:8080... 查看详情

springmvc(代码片段)

文章目录SpringMVC静态页面SpringMVC页面重定向SpringMVC文本框SpringMVC密码处理SpringMVC静态页面使用SpringMVCFramework编写一个简单的基于Web的应用程序可以使用<mvc:resources>标记访问静态页面和动态页面。首先使用EclipseIDE创建一个动... 查看详情

springboot2之web开发(上)——之静态资源和请求参数处理(代码片段)

...eb开发(上)——之静态资源和请求参数处理一、SpringMVC自动配置概览二、简单功能分析2.1静态资源访问2.2欢迎页支持2.3自定义Favicon2.4静态资源配置原理(源码分析)2.4.1addResourceHandlers方法(静态资源处理默... 查看详情