Spring MVC 读取静态资源时404错误

背景:web.xml配置时拦截策略是拦截所有请求:

    <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/springmvc-servlet.xml</param-value>  //对拦截对象的处理
        </init-param>
        <load-on-startup>1</load-on-startup>
    </servlet>
    <servlet-mapping>
        <servlet-name>springmvc</servlet-name>
        <url-pattern>/</url-pattern>  //拦截所有请求
    </servlet-mapping>

解决步骤:

1、把静态资源放在项目根目录webroot下,,不放在WEB-INF下

2、增加配置,过滤对静态资源的拦截:(以下二选一,前者效率较高,但每种资源都要配置一个servet-mapping;而后者较灵活)

方法一、在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>

方法二、或者在springmvc-servlet.xml中增加如下配置(以css文件为例):

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

特别地,通过如下这条配置可以访问所有资源

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

通过以上方法,就可以解决访问静态资源时报404的问题,

时间: 2024-10-15 04:07:23

Spring MVC 读取静态资源时404错误的相关文章

Spring MVC 处理静态资源文件

摘要: 三个方案: 1.方案一:激活Tomcat的defaultServlet来处理静态文件 2.方案二: 在spring3.0.4以后版本提供了mvc:resources (需要配置annotation-driven) 3.方案三 ,使用<mvc:default-servlet-handler/>(需要配置annotation-driven) 一.问题:Spring MVC 处理静态资源文件 1. 以下情况需要先了解 1.1  如果你的DispatcherServlet拦截 *.do这样的U

【Spring学习笔记-MVC-14】Spring MVC对静态资源的访问

作者:ssslinppp       参考链接: http://www.cnblogs.com/luxh/archive/2013/03/14/2959207.html http://www.cnblogs.com/fangqi/archive/2012/10/28/2743108.html 优雅REST风格的资源URL不希望带 .html 或 .do 等后缀.由于早期的Spring MVC不能很好地处理静态资源,所以在web.xml中配置DispatcherServlet的请求映射,往往使用

Spring MVC配置静态资源和资源包教程

1- 介绍 这篇教程文章是基于: Spring 4 MVC 2- 创建一个项目 File/New/Other.. 输入: Group ID: com.yiibai Artifact ID: SpringMVCResource Package: com.yiibai.springmvcresource 项目被创建以后如下: 不要担心有错误消息在项目被创建时.原因是,我们还没有声明 Servlet 库. 注意: Eclipse 4.4(Luna)在创建 Maven 项目结构时可能是有错误的.需要修复

spring mvc访问静态资源的问题, .js .jpg .css

如果你的DispatcherServlet拦截 *.do这样的URL,就不存在访问不到静态资源的问题. 如果你的DispatcherServlet拦截"/",拦截了所有的请求,同时对*.js,*.jpg的访问也就被拦截了. 方案一:激活Tomcat的defaultServlet来处理静态文件 Xml代码 <servlet-mapping> <servlet-name>default</servlet-name> <url-pattern>

spring mvc - 对静态资源的处理

spring对静态资源文件(js css htm html jpg jepg png bmp)等的处理方式如下: 一.交由上级web容器处理,在web.xml中的org.springframework.web.servlet.DispatcherServlet 配置之前加入如下代码: <servlet-mapping>        <servlet-name>default</servlet-name>        <url-pattern>*.css&

Spring mvc 拦截静态资源配置管理

springMVC的<mvc:resources mapping="***" location="***">标签是在spring3.0.4出现的,主要是用来定义对静态资源的访问. 直接在spring mvc.xml文件中加入下面配置即可访问静态资源 <mvc:resources location="/" mapping="/**/*.html"/> <mvc:resources location=

Spring MVC 处理静态资源不能访问问题

在web.xml文件中加入如下代码: <servlet-mapping> <servlet-name>default</servlet-name> <url-pattern>*.js</url-pattern> </servlet-mapping> <servlet-mapping> <servlet-name>default</servlet-name> <url-pattern>*.

Spring Boot 的静态资源处理

做web开发的时候,我们往往会有很多静态资源,如html.图片.css等.那如何向前端返回静态资源呢?以前做过web开发的同学应该知道,我们以前创建的web工程下面会有一个webapp的目录,我们只要把静态资源放在该目录下就可以直接访问.但是,基于Spring boot的工程并没有这个目录,那我们应该怎么处理? 一.最笨的方式 我们首先来分享一种最笨的办法,就是将静态资源通过流直接返回给前端,我们在maven工程的resources的根目录下建立一个html的目录,然后我们把html文件放在该目

Spring MVC返回json视图时,如何将对象直接序列化成不带变量名做为根节点

Spring MVC返回json视图时,如何将对象直接序列化成不带变量名做为根节点的 json 报文 问题 问题描述起来比较拗口,其实就是用Spring MVC时,如何将对象映射成 json 报文时不把对象作为json的根节点.即使用@ResponseBody的效果. 比如,默认情况下,使用ModelAndView的addObject(key,object)或者ModelMap的addAttribute(key,object)保存完Java对象,然后交给Srping的视图解析器解析成json时,