ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

SpringMVC静态资源访问配置

2019-09-16 18:40:15  阅读:249  来源: 互联网

标签:xml web 访问 SpringMVC js 静态 拦截 资源


一、前言

  不知道有没有遇到过在访问项目登录html页面或者其他html页面的时候访问不了其中的js文件,js文件属于静态资源文件,同时还有img、css、font等静态资源文件,在某些时候,大部分情况下都是需要开放访问权限的;

 

二、查看一下web.xml文件,前端控制器的配置

 1、web.xml

    <!-- springmvc的前端控制器 -->
    <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.xml</param-value>
        </init-param>
        <!--配置SpringMVC什么时候启动,参数必须为整数-->
        <!-- 如果为0或者大于0 ,则SpringMVC随着容器启动而启动-->
        <!--如果小于0,则在第一次请求进来的时候启动-->
        <load-on-startup>1</load-on-startup>
    </servlet>

    <servlet-mapping>
        <servlet-name>springMVC</servlet-name>
        <!-- 拦截所有请求 没有对静态资源文件的访问放行可以访问的权限-->
        <url-pattern>/</url-pattern>
    </servlet-mapping>

/ 表示拦截所有的请求,包括静态资源

<url-pattern>/</url-pattern> --表示拦截所有的请求,包括静态资源

三、去静态资源拦截有三种方式

1、在web.xml中配置映射

 <!-- 对静态资源的配置 -->
    <servlet-mapping>
        <servlet-name>default</servlet-name>
        <url-pattern>*.js</url-pattern>
        <url-pattern>*.css</url-pattern>
        <url-pattern>*.ico</url-pattern>
        <url-pattern>/img/*</url-pattern>
        <url-pattern>/fonts/*</url-pattern>
        <url-pattern>/font/*</url-pattern>
    </servlet-mapping>

  可以根据自身情况,来配置映射
2、在springMVC.xml中添加静态资源的映射

<!--
    通过mvc:resources设置静态资源,这样servlet就会处理这些静态资源,而不通过控制器
    设置不过滤内容,比如:css,js,img 等资源文件
   location指的是本地的真实的物理路径 ,mapping指的是映射到的虚拟路径(比如前端请求的url地址)。-->
    <mvc:resources mapping="/css/**" location="/css/**"/>
    <mvc:resources mapping="/js/**" location="/js/**"/>
    <mvc:resources mapping="/images/**" location="/images/**"/>


3、在SpringMVC.xml中添加静态资源默认Servlet处理

<mvc:default-servlet-handler/>

注意: 这种方式对spring版本必须要求3.0.5及以上

å¨è¿éæå¥å¾çæè¿°

 

     å¨è¿éæå¥å¾çæè¿°

     å¨è¿éæå¥å¾çæè¿°

查看静态资源路径:发现请求路径并没有写错,出错的原因是什么呢?

      å¨è¿éæå¥å¾çæè¿°

原因:核心控制器拦截的路径是/,/表示“http://localhost:8080/项目名/”这个路径,所以
如下路径都可以被拦截:
http://localhost:8080/HelloMVC/js/jquery.js
http://localhost:8080/HelloMVC/a

     å¨è¿éæå¥å¾çæè¿°

如何解决:

方法一 修改web.xml的配置文件

      å¨è¿éæå¥å¾çæè¿°
 

方法2 在spring中配置:(推荐)

      å¨è¿éæå¥å¾çæè¿°
  
方法3:location=”/”表示请求根目录下的所有内容

<mvc:resources location="/,classpath:/META-INF/publicResources/" mapping="/js/**"/>


No mapping found for HTTP request with URI[/ResponseBodyTest/js/jquery-1.11.0.min.js] in DispathcherServlet with name’springmvc解决方案就是这些

 

 

标签:xml,web,访问,SpringMVC,js,静态,拦截,资源
来源: https://blog.csdn.net/Thinkingcao/article/details/100895012

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有