您的位置:首页 > 编程语言 > Java开发

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

2015-04-28 00:12 603 查看
原文链接:点击打开链接最近想自己用很牛逼的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太屌,得花大量时间去实践,然而感觉是日了狗了。
                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐