问题描述
服务器:tomcat6.0.29我的项目想用spring mvc框架,URL采用REST风格,但是这样一来,服务器上的静态资源访问不到了,麻烦高手给看一下。web.xml文件如下 <?xml version="1.0" encoding="UTF-8"?><web-app version="2.5" xmlns="http://java.sun.com/xml/ns/j2ee"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://java.sun.com/xml/ns/javaeehttp://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"><!-- Spring前端控制器 --><servlet><servlet-name>dingcanServlet</servlet-name><servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class><init-param><param-name>contextConfigLocation</param-name><param-value>classpath:/context/servlet/dingcan-servlet.xml</param-value></init-param><load-on-startup>1</load-on-startup></servlet><servlet-mapping><servlet-name>dingcanServlet</servlet-name><url-pattern>/</url-pattern></servlet-mapping><!--以下是静态文件路径配置,如果不配置,则对静态文件的请求也会被dingcanServlet拦截--><servlet-mapping><servlet-name>default</servlet-name><url-pattern>/script/*</url-pattern></servlet-mapping><servlet-mapping><servlet-name>default</servlet-name><url-pattern>/images/*</url-pattern></servlet-mapping><servlet-mapping><servlet-name>default</servlet-name><url-pattern>/style/*</url-pattern></servlet-mapping><servlet-mapping><servlet-name>default</servlet-name><url-pattern>/html/*</url-pattern></servlet-mapping></web-app> 问题补充:<div class="quote_title">successfulroof 写道</div><div class="quote_div">你自己不是也配置了吗?<br /> <servlet-mapping> <br /> <servlet-name>default</servlet-name> <br /> <url-pattern>/html/*</url-pattern> <br /> </servlet-mapping> <br />如果是html你可以放在/html/这个文件夹下<br />不过我一般不是这么配置的我会用这种形式<br /> <servlet-mapping> <br /> <servlet-name>default</servlet-name> <br /> <url-pattern>*.html</url-pattern> <br /> </servlet-mapping> <br />只要是html文件的请求,都不会被dispatcher接收</div><br />非常感谢您的回复,我在apache官网上也找到答案了,如果按如下配置:<pre name="code" class="xml"> <servlet-mapping> <servlet-name>default</servlet-name> <url-pattern>/html/*</url-pattern> </servlet-mapping> </pre><br />并且我把html文件都放在/html下时,访问时应该这么访问/html/html/x.html,而我先前一直尝试着用/html/x.html来访问,自然是访问不到了。现在我也采用您那种方案了!再次感谢!
解决方案
你自己不是也配置了吗? <servlet-mapping> <servlet-name>default</servlet-name> <url-pattern>/html/*</url-pattern> </servlet-mapping> 如果是html你可以放在/html/这个文件夹下不过我一般不是这么配置的我会用这种形式 <servlet-mapping> <servlet-name>default</servlet-name> <url-pattern>*.html</url-pattern> </servlet-mapping> 只要是html文件的请求,都不会被dispatcher接收