springmvc找不到静态资源文件等

来源:互联网 发布:js正则表达式大全 编辑:程序博客网 时间:2024/06/06 03:39
当找不到js等静态资源文件,我们应该按下面的思路去分析:
  1. 路径不对(可以采用绝对或相对路径)
  2. web.xml里,拦截的内容不对
--------------
关于1,虽然路径正确,但是我用这种方式不可以访问css和js文件:
<script type="text/javascript" src="/js/extjs/ext-all.js"></script>//<script type="text/javascript" src="/js/extjs/ext-debug.js"></script><script type="text/javascript" src="/js/extjs/locale/ext-lang-zh_CN.js"></script><link rel="stylesheet" type="text/css" href="/js/extjs/resources/css/ext-all.css"/>

改成这样就可以了:
<script type="text/javascript"><%request.setAttribute("ctxPath", request.getContextPath());%></script><script type="text/javascript" src="${ctxPath }/js/extjs/ext-all.js"></script>//<script type="text/javascript" src="${ctxPath }/js/extjs/ext-debug.js"></script><script type="text/javascript" src="${ctxPath }/js/extjs/locale/ext-lang-zh_CN.js"></script><link rel="stylesheet" type="text/css" href="${ctxPath }/js/extjs/resources/css/ext-all.css"/>

关于2,多种方式可以拒绝拦截:
方式1.
激活Tomcat的DefaultServlet(既服务于静态资源又服务于目录列表(如果允许目录列表的话)的servlet来处理静态文件,要写在DispatcherServlet的前面, 让 defaultServlet先拦截请求,这样请求就不会进入Spring了。
<!--servlet可以访问的静态资源-->
 <servlet-mapping>
     <servlet-name>default</servlet-name>
     <url-pattern>*.gif</url-pattern>
     <url-pattern>*.png</url-pattern>
     <url-pattern>*.jpg</url-pattern>
     <url-pattern>*.js</url-pattern>
     <url-pattern>*.css</url-pattern>
     <url-pattern>*.xml</url-pattern>
     <url-pattern>*.html</url-pattern>
     <url-pattern>*.chm</url-pattern>
     <url-pattern>*.gz</url-pattern>
     <url-pattern>*.txt</url-pattern>
     <url-pattern>*.ttf</url-pattern>
     <url-pattern>*.woff</url-pattern>
     <url-pattern>*.woff2</url-pattern>
     <url-pattern>*.eot</url-pattern>
     <url-pattern>*.svg</url-pattern>
     <url-pattern>*.swf</url-pattern>
     <url-pattern>*.jst</url-pattern>
   </servlet-mapping>
方式2.
在spring3.0.4以后版本提供了mvc:resources ,  使用方法:
 <!-- 对静态资源文件的访问 -->     
 <mvc:resources mapping="/images/**" location="/images/" />    
/images/**映射到ResourceHttpRequestHandler进行处理,
location指定静态资源的位置.可以是web application根目录下、jar包里面,这样可以把静态资源压缩到jar包中。
方式三.
使用    <mvc:default-servlet-handler/>   
0 0
原创粉丝点击