springmvc无法访问静态资源
想要在页面中引入一段js
<script type="text/javascript" src="plugins/My97DatePicker/WdatePicker.js"></script>
页面无法引入js,后台报错:
[org.springframework.web.servlet.PageNotFound] {} - No mapping found for HTTP request with URI [/data-export/plugins/My97DatePicker/WdatePicker.js] in DispatcherServlet with name ‘springServlet’
原因:在web.xml中配置了springServlet如下:
<servlet-mapping>
<servlet-name>springServlet</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
默认对所有/访问的页面或者其他资源都进行拦截,而这个js没有相应的controller,所以无法访问。
解决办法1:
把springServlet配置改为*.do或者其他
<servlet-mapping>
<servlet-name>springServlet</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>
解决办法2:
在spring-mvc.xml中配置静态资源访问:
<mvc:resources location="/" mapping="/**/*.js"/>
<mvc:resources location="/" mapping="/**/*.css"/>
<mvc:resources location="/" mapping="/**/*.gif"/>
<mvc:resources location="/" mapping="/**/*.jpg"/>
解决办法3:
在spring-mvc.xml中配置:
<mvc:default-servlet-handler/>
spring版本需要在3.0.5以上