springmvc之静态资源访问不到 -记一次惨痛的经历
2024-09-04 00:13:30
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这一行忘记写了,导致怎么配置都不生效。
- 解决方案一
修改web.xml
<servlet-mapping>
<servlet-name>spring</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>
url需要以.do结尾
- 解决方案二
修改springmvc.xml
<mvc:resources location="/images/" mapping="/images/**"/>
<mvc:resources location="/css/" mapping="/css/**"/>
<mvc:resources location="/js/" mapping="/js/**"/>
需要spring3+ , 这个配置告诉spring 静态资源的处理方式
- 解决方案三
修改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>
- 解决方案四
修改springmvc.xml
<mvc:default-servlet-handler/>
最新文章
- tail命令详解
- SQL Server 事件通知(Event notifications)
- zabbix问题处理
- Meet Python: little notes 2
- Open the Lock[HDU1195]
- lua技巧分享之保护执行
- 图片上传iOS
- codeforces C. Restore Graph
- [编辑中] 免费的Internet流量发生器 | Free Internet Traffic Generators
- ViewPager实现页卡的最新方法--简洁的TabLayout(谷歌支持包)
- 关于 Unchecked cast from Iterator to Iterator String 提示
- Android开发之回调函数
- asp.net 程序,当发生找不到文件的错误时,如何正确定位是哪个文件?
- JavaScript splice() 方法
- 学习 razor pages 指南
- vue2.0在android5.0白屏, es6转es5保证浏览器兼容性
- [译] OpenStack Ocata 版本中的 53 个新功能盘点
- 通过pip安装套件
- 【复制虚拟机】虚拟机复制后无ip的问题
- chkconfig命令主要用来更新(启动或停止)和查询系统服务的运行级信息