说明
在IDEA搭建好SSM框架后,对静态资源进行了测试,发现图片无法显示(显示成一张破裂的图像~)…
下面是我在index.xml里面写的图片的测试:
<img src="/images/login.jpeg">
因为尝试了很多解决办法才成功,特此记录!
解决
- 在网上查看了各种解决方式,首先是对路径的控制,如果路径不能写正确,肯定就访问不到这个资源.
在IDEA强大的代码提示功能下,没有发现错误. - 然后就是在spring-mvc.xml里面,判断是不是拦截了静态资源,发现确实没有对静态资源放行!然后我就加入以下代码对静态资源放行:
<mvc:default-servlet-handler/>
<mvc:resources mapping="/images/**" location="/images/"></mvc:resources>
<mvc:resources mapping="/css/**" location="/css/"></mvc:resources>
<mvc:resources mapping="/js/**" location="/js/"></mvc:resources>
- 之后赶紧测试了一下,发现还是不行,然后又去网上找解决方法,结果有一位大佬提出在web.xml也要进行静态资源的配置,所以在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>*.jpeg</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>*.css</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>*.png</url-pattern>
</servlet-mapping>
- 之后再启动,成功显示页面!
注意
在IDEA搭建完成SSM框架后,关于静态资源,我没有放到一个固定的比如说static文件夹里,(因为在网上查找解决办法时,有人说是这个文件夹的属性没有定义成资源文件夹).我的静态资源文件结构:
需要注意的是,每次修改自己的文件结构,都要查看spring-mvc.xml里面的静态资源配置的location是否正确,如果找不到这个路径,IDEA是会爆红哒!