解决springMVC 跳转js css图片等静态资源无法加载的问题

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-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>

会导致页面引用的JS CSS发生找不到的错误 ,以下有两种方式解决问题,仅供参考:

方法一:在web.xml中添加

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

 <servlet-mapping>
  <servlet-name>default</servlet-name>
  <url-pattern>*.gif</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> 

指明对于如上资源文件不采用spring的过滤器

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

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

<servlet>
   <servlet-name>default</servlet-name>
   <servlet-class>
   org.apache.catalina.servlets.DefaultServlet
   </servlet-class>
   <init-param>
    <param-name>debug</param-name>
    <param-value>0</param-value>
   </init-param>
   <init-param>
    <param-name>listings</param-name>
    <param-value>true</param-value>
   </init-param>
   <load-on-startup>1</load-on-startup>
  </servlet> 

 ... 

  <servlet-mapping>
   <servlet-name>default</servlet-name>
   <url-pattern>/</url-pattern>
  </servlet-mapping> 

有一些参数可以控制DefaultServlet的行为。此外,当请求的URL是/的时候, 也就是没有匹配的时候,就会触发这个DefaultServlet。

方法二:使用spring mvc 的 resources 注解 用来处理静态文件

spring mvc 的< mvc:resources mapping=”” location=”“>标签是在spring3.0.4出现的,主要是用来进行静态资源的访问。在spring3.0.4出来的时候spring还没有更新其schema所以在配置文件中有可能找不到< mvc:resources >标签,这个问题在spring3.0.5中已经解决,而且网上也有很多其他的解决方案,我在这里就不记录了。

首先使用spring mvc需要配置其使用的servlet.在web.xml中:

有一些参数可以控制DefaultServlet的行为。此外,当请求的URL是/的时候, 也就是没有匹配的时候,就会触发这个DefaultServlet。

<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> 

这是会影响到静态资源文件的获取,这样就需要有这个标签来帮你分类完成获取静态资源的责任。

所以在springMVC-servlet.xml文件中加入如下代码

<?xml version="1.0" encoding="UTF-8"?>
  <beans xmlns="http://www.springframework.org/schema/beans"
   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
   xmlns:mvc="http://www.springframework.org/schema/mvc"
   xsi:schemaLocation="http://www.springframework.org/schema/beans
 http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
   http://www.springframework.org/schema/mvc
 http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd">  

   <mvc:resources mapping="/javascript/**"
   location="/static_resources/javascript/"/>
   <mvc:resources mapping="/styles/**"
   location="/static_resources/css/"/>
   <mvc:resources mapping="/images/**"
   location="/static_resources/images/"/>
   <mvc:default-servlet-handler /> 

这里可以看到我所有的页面引用到/styles/**的资源都从/static_resources/css里面进行查找。

根据以上的两种方法,就可以访问到站点的静态资源了。

以上这篇解决springMVC 跳转js css图片等静态资源无法加载的问题就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们。

(0)

相关推荐

  • springmvc接收jquery提交的数组数据代码分享

    这里分享给大家的代码是springmvc接收jquery提交的数组数据的相关内容,具体代码如下: var selectedUsers = $('#users').tagbox('getValues'); if (selectedUsers.length > 0) { $.post(appPath + "/role/users/add/", { 'systemID' : $('#systemID').combobox('getValue'), 'roleID' : roleID,

  • 详解IDEA用maven创建springMVC项目和配置

    本文介绍了IDEA用maven创建springMVC项目和配置,分享给大家,具体如下: 工具准备:IDEA2016.3 Java jdk 1.8 1.DEA创建项目 新建一个maven project,并且选择webapp原型. 然后点击next 这里的GroupId和ArtifactID随意填写,但是ArtifactID最好和你的项目一名一样然后next 为了快一点创建,我们添加一个属性值,如图中亮的所示,点右边的加号,name=archetypeCatalog value=internal.

  • springmvc无法访问/WEB-INF/views下的jsp的解决方法

    最近在搭建springmvc的框架,遇到的这样的问题: 在地址栏访问登陆界面访问不了,http://localhost/XXXX/WEB-INF/views/login.jsp.直接返回404.查了一下,springmvc在对保护的资源是这样访问的. 1.首先在springmvc-servlet.xml中添加视图解析. <!-- 视图处理器 --> <bean id="viewResolver" class="org.springframework.web.

  • SpringMVC使用MultipartFile 实现异步上传方法介绍

    目的是实现异步上传 1.添加pom依赖 添加pom依赖,因为用的ajax,数据需要转成json的格式进行传输,所以还有加入一个JSON jar包: <dependency> <groupId>commons-fileupload</groupId> <artifactId>commons-fileupload</artifactId> <version>1.3.1</version> </dependency>

  • SpringMVC框架实现上传图片的示例代码

    一.创建图片虚拟目录 在上传图片之前,先要设置虚拟目录(以IDEA为例) 打开工具栏的运行配置Edit Configurations 添加物理目录和并设置虚拟目录路径 添加img图片在img文件夹内 测试访问:http://localhost:8080/img/img.jpg 二.SpringMVC上传头像 1.SpringMVC对多部件类型的解析 上传图片SpringMVC.xml配置 在页面form中提交enctype="multipart/form-data"的数据时,需要spr

  • 解决springMVC 跳转js css图片等静态资源无法加载的问题

    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-va

  • 非常漂亮的JS+CSS图片幻灯切换特效

    非常漂亮的JS+CSS图片幻灯切换特效,用在你的首页比较不错,宽屏图片格式,每张图片平滑飞入切换,鼠标放上自动切换,和FLASH的平滑效果差不多,视觉冲击效果很爽,而且代码也不多,调试调用都方便,建议关注一下哦! 复制代码 代码如下: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd

  • 解决Django中修改js css文件但浏览器无法及时与之改变的问题

    今天修改之前实习小伙伴写的js代码的时候,遇到修改后页面未发生变化的问题.因为我是web开发小白,所以上网查了一波,得以解决~~ 初次进行web工程开发的人可能会碰到这样的情况:自己在明明对工程上的某个js或css文件进行了修改,并提交到服务器上去了.但是在客户端浏览器里面打开页面时,并没有看到修改后的效果,而是该js文件的旧版本的效果. 如果了解过浏览器缓存就知道,为了效率,浏览器通常会缓存js/css文件.如果没有清除浏览器缓存的该js文件的话,js的修改效果就不会起作用,因为浏览器还是用的

  • JS通过ajax + 多列布局 + 自动加载实现瀑布流效果

    Ajax •说明:本文效果是无限加载的,意思就是你一直滚动就会一直加载图片出现,通过鼠标滚动距离来判断的,所以不是说的那种加载一次就停了的那种,那种demo下次我会再做一次 css部分用的是html5+css3的新属性,图片会自动添加到每行的最顶端上去,而不是用js去判断.去除了一些js计算的麻烦. css部分: * { margin: 0; padding: 0; box-sizing: border-box; } body { background: #352323 url(images/a

  • 关于JS与jQuery中的文档加载问题

    jquery中的$(document).ready()类似于javascript中的window.onload(),但是其中还是有很大区别的 1.jquery中的可以简化为$().ready(),$(function),   而js却不行必须全部写完. 2.同时js的window.onload()只能有一个,而jquery的$(document).ready()却可以有多个. 3.最重要的一点是window.onload必须等到页面内包括图片的所有元素加载完毕后才能执行.   $(documen

  • 原生js实现下拉刷新和上拉加载更多

    本文实例为大家分享了js实现下拉刷新和上拉加载更多的具体代码,供大家参考,具体内容如下 1.下拉刷新 由于原生js太久不用了,这里列一下此处涉及到的前置知识点: 移动端触屏事件: touchstart(手指按下的一瞬间),touchmove(手指在屏幕上移动时),touchend(手指松开时) 手指在页面上的坐标: pageX,pageY 写之前首先要懂原理,下拉刷新的本质就是用户在页面顶部进行上拉动作时拉到一定的距离触发数据刷新. 大概需要做的几个点: 1.在手指按下时(touchstart)

  • Vue3+TypeScript+Vite使用require动态引入图片等静态资源

    问题:Vue3+TypeScript+Vite的项目中如何使用require动态引入类似于图片等静态资源! 描述:今天在开发项目时(项目框架为Vue3+TypeScript+Vite)需要 动态引入静态资源,也就是img标签的src属性值为动态获取,按照以往的做法直接是require引入即可,如下代码: <img class="demo" :src="require(`../../../assets/image/${item.img}`)" /> 写上后

  • 解决Spring boot2.0+配置拦截器拦截静态资源的问题

    第一次遇到这个问题的时候,简直是一脸蒙逼,写了一个拦截器以后,静态资源就不能访问了,到处查找才知道是版本问题 解决办法: 第一步:定义一个类实现 实现WebMvcConfigurer的类中拦截器中添加放行资源处添加静态资源文件路径: @Override public void addInterceptors(InterceptorRegistry registry) { registry.addInterceptor(sessionInterceptor).addPathPatterns("/&

  • 解决SpringBoot webSocket 资源无法加载、tomcat启动报错的问题

    问题描述: 1. 项目集成WebSocket,且打包发布tomcat时出现websocket is already in CLOSING or CLOSE state这样的问题,建议参考"解决方法二",但是"解决方法一"请要了解查看 ,因为解决方法二是在一的基础上进行更正 2. 如果出现javax.websocket.server.ServerContainer not available这样的错误,请参考"解决方法一"中步骤3 解决方法一:(常

  • js实现瀑布流触底动态加载数据

    本文实例为大家分享了js实现瀑布流触底动态加载数据的具体代码,供大家参考,具体内容如下 // onScrollEvent 滚动条事件 <div class="box" ref="box" @mousewheel="onScrollEvent"> //每一个方块内的内容start <div class="boxItemStyle" v-for="(userTag, i) in dataSource&q

随机推荐