在使用springmvc框架时,出现路径定向错误
因为将default servlet映射至/static/的子目录,现我们访问静态资源将会带一个/static/前缀;
而在有些电脑上,又没有加上static前缀;
或者在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>*.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>*.gif</url-pattern>
</servlet-mapping>
解决办法:使用 静态资源的URL重写
参照网址:http://www.congci.com/item/spring,mvc,restful,url
添加:
urlrewrite-2.6.0.jar-> WebRoot/WEB-INF/lib/urlrewrite-2.6.0.jar
添加:
urlrewrite.xml -> WebRoot/WEB-INF/urlrewrite.xml
urlrewrite.xml中的内容如下:
<urlrewrite>
<!-- 访问jsp,jspx,jpg,gif,css将不rewriteurl,其它.js,.css,.gif等将重写,如 /foo.gif=> /static/foo.gif asf-->
<rule>
<condition operator="notequal"next="and" type="request-uri">.*.jsp</condition>
<condition operator="notequal"next="and" type="request-uri">.*.jspx</condition>
<condition operator="notequal"next="and" type="request-uri">.*.jpg</condition>
<condition operator="notequal"next="and" type="request-uri">.*.gif</condition>
<condition operator="notequal"next="and" type="request-uri">.*.css</condition>
<from>^(/.*\..*)$</from>
<to>/static$1</to>
</rule>
</urlrewrite>
Web.xml 中加入:
<!-- urlrewrite -->
<filter>
<filter-name>UrlRewriteFilter</filter-name>
<filter-class>
org.tuckey.web.filters.urlrewrite.UrlRewriteFilter
</filter-class>
</filter>
<filter-mapping>
<filter-name>UrlRewriteFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>