springmvc之静态资源访问不到 -记一次惨痛的经历

问题描述:项目正常启动,可以访问页面,但是无法找到静态资源文件,如css,js等文件资源。

控制台:

$ 未定义

页面:

GET http://localhost:8080/SpringMvc16_20/js/jquery,min.js net::ERR_ABORTED 404 (Not Found)

问题原因:是web.xml下对spring的DispatcherServlet请求url映射的配置,原配置如下:

<!DOCTYPE web-app PUBLIC
"-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
"http://java.sun.com/dtd/web-app_2_3.dtd" > <web-app>
<display-name>Archetype Created Web Application</display-name>
<servlet>
<servlet-name>dispatcherServlet</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:springmvc.xml</param-value>
</init-param>
<!--沃妮马 忘了写这一行-->
<load-on-startup>1</load-on-startup>
</servlet> <servlet-mapping>
<servlet-name>dispatcherServlet</servlet-name>
<url-pattern>/</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>*.ico</url-pattern>
</servlet-mapping>--> <!--解决中文乱码-->
<filter>
<filter-name>characterEncodingFilter</filter-name>
<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>characterEncodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping> </web-app>

分析原因:的/把所有的请求都交给spring去处理了,

1这一行忘记写了,导致怎么配置都不生效。

  1. 解决方案一

修改web.xml

<servlet-mapping>
<servlet-name>spring</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>

url需要以.do结尾

  1. 解决方案二

修改springmvc.xml

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

需要spring3+ , 这个配置告诉spring 静态资源的处理方式

  1. 解决方案三

修改web.xml

<servlet-mapping>
<servlet-name>default</servlet-name>
<url-pattern>*.js</url-pattern>
<url-pattern>*.css</url-pattern>
<url-pattern>/assets/*"</url-pattern>
<url-pattern>/images/*</url-pattern>
</servlet-mapping>
  1. 解决方案四

修改springmvc.xml

<mvc:default-servlet-handler/>

最新文章

  1. tail命令详解
  2. SQL Server 事件通知(Event notifications)
  3. zabbix问题处理
  4. Meet Python: little notes 2
  5. Open the Lock[HDU1195]
  6. lua技巧分享之保护执行
  7. 图片上传iOS
  8. codeforces C. Restore Graph
  9. [编辑中] 免费的Internet流量发生器 | Free Internet Traffic Generators
  10. ViewPager实现页卡的最新方法--简洁的TabLayout(谷歌支持包)
  11. 关于 Unchecked cast from Iterator to Iterator String 提示
  12. Android开发之回调函数
  13. asp.net 程序,当发生找不到文件的错误时,如何正确定位是哪个文件?
  14. JavaScript splice() 方法
  15. 学习 razor pages 指南
  16. vue2.0在android5.0白屏, es6转es5保证浏览器兼容性
  17. [译] OpenStack Ocata 版本中的 53 个新功能盘点
  18. 通过pip安装套件
  19. 【复制虚拟机】虚拟机复制后无ip的问题
  20. chkconfig命令主要用来更新(启动或停止)和查询系统服务的运行级信息

热门文章

  1. 201871010108-高文利《面向对象程序设计(java)》第八周学习总结
  2. day30_8.9 操作系统与并发编程
  3. opencv旋转图像
  4. 【Spring AOP】通知(五)
  5. Exception in createBlockOutputStream
  6. CloudCompare打开pcd文件
  7. 几个简单js,普通写法和高逼格写法比较
  8. flink源码学习
  9. PKUWC2020游记
  10. java web开发入门十一(idea maven mybatis自动代码生成)基于intellig idea