Spring MVC JSP页面无法加载.jpg .css .js的解决方案


原文链接:


点击打开链接


最近想自己用很牛逼的Spring+Hibernate开发框架动手撸一个博客系统,不要问我为什么,个人觉得Java比PHP的安全性更高,而且实在没有心情去看wordpress下php文件冗长的代码,就暂时性放下了自己去制作一个wordpress的主题。


边玩边学之后,对HTML5,CSS,JavaScript都有了一定点了解,晚上断电之后,自己用记事本撸了一些html文件,准备第二天整合到Spring项目中。接着整合打时候,出现了JSP页面无法加载  .jpg  , .css ,.js文件,路径都没有错,花了我几个小时,查遍了网上 的办法,总算说解决了。真是日了狗了。


之所以不能加载这些文件的原因在这里,web.xml文件下又这样一段配置:


<!-- Processes application requests -->

<servlet>

<servlet-name>appServlet</servlet-name>

<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>



<init-param>

<param-name>contextConfigLocation</param-name>

<param-value>/WEB-INF/spring/appServlet/servlet-context.xml</param-value>

</init-param>

<load-on-startup>1</load-on-startup>

</servlet>

<servlet-mapping>

<servlet-name>default</servlet-name>

<url-pattern>*.png</url-pattern>

<url-pattern>*.js</url-pattern>

<url-pattern>*.css</url-pattern>

<url-pattern>*.jpg</url-pattern>

</servlet-mapping>

 <servlet-mapping>

         <servlet-name>appServlet</servlet-name>

     <url-pattern>/</url-pattern>

</servlet-mapping>

<p style="color: rgb(51, 51, 51); font-family: Georgia, 'Times New Roman', 'Bitstream Charter', Times, serif; font-size: 16px; line-height: 24px;">加粗的地方<strong><url-pattern>/</url-pattern>,这个“/”一出现就拦截来所有的请求,包括我们使用<img src="xxx.jpg"></strong></p><p style="color: rgb(51, 51, 51); font-family: Georgia, 'Times New Roman', 'Bitstream Charter', Times, serif; font-size: 16px; line-height: 24px;">或者说<link rel="stylesheet" href="css/style.css" media="screen" type="text/css" />,文件的路径都给拦截下来了,而所有available的请求url都是在Constroller里使用类似@RequestMapping(value = "/login/{user}", method = RequestMethod.GET)这样的注解配置的,这样的话对js/css/jpg/gif等静态资源的访问就会得不到。。</p><p style="color: rgb(51, 51, 51); font-family: Georgia, 'Times New Roman', 'Bitstream Charter', Times, serif; font-size: 16px; line-height: 24px;">我也试过这个办法,再web.xml里面加入这个段代码,</p>
<pre name="code" class="html"> <servlet-mapping>

           <servlet-name>default</servlet-name>

          <url-pattern>*.png</url-pattern>

          <url-pattern>*.js</url-pattern>

          <url-pattern>*.css</url-pattern>

         <url-pattern>*.jpg</url-pattern>

</servlet-mapping>


 

Tomcat默认的servlet是default,据说是可以这样找到我们要用的静态文件,我试过之后就挂掉, 可能说我自己配错了。

后来我在webapp目录下新建了img,css,js文件夹,把静态资源放进去,然后在servlet-context.xml配置里增加了这么几行:


<mvc:resources location="/img/" mapping="/img/**"/>

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

img/**映射到 ResourceHttpRequestHandler进行处理,location指定静态资源的位置。调试成功,自我总结就是Spring太屌,得花大量时间去实践,然而感觉是日了狗了。





  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值