日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 前端技术 > javascript >内容正文

javascript

Spring3中js/css/jpg/gif等静态资源无法找到(No mapping found for HTTP request with URI)问题解决...

發(fā)布時(shí)間:2025/7/14 javascript 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Spring3中js/css/jpg/gif等静态资源无法找到(No mapping found for HTTP request with URI)问题解决... 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
最近項(xiàng)目中使用到Spring3,在感嘆Spring3注解配置清爽的同時(shí)竟然出現(xiàn)了這個(gè)不和諧的事情,實(shí)在無(wú)法忍受

問 題:部署項(xiàng)目后程序加載或用瀏覽器訪問時(shí)出現(xiàn)類似的警告,2011-01-19 10:52:51,646 WARN [org.springframework.web.servlet.PageNotFound] -<No mapping found for HTTP request with URI [/sandDemo001/images/1.jpg] in DispatcherServlet with name 'spring'>,主要看尖括號(hào)內(nèi)部分。

問題原因:罪魁禍?zhǔn)资莣eb.xml下對(duì)spring的DispatcherServlet請(qǐng)求url映射的配置,原配置如下:

<servlet>
??? <servlet-name>spring</servlet-name>
??? <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
??? <load-on-startup>1</load-on-startup>
?</servlet>
?<servlet-mapping>
??????? <servlet-name>spring</servlet-name>
??????? <url-pattern>/</url-pattern>
?</servlet-mapping>

分 析原因:<servlet-mapping>的<url-pattern>/</url-pattern>把所有的 請(qǐng)求都交給spring去處理了,而所有available的請(qǐng)求url都是在Constroller里使用類似 @RequestMapping(value = "/login/{user}", method = RequestMethod.GET)這樣的注解配置的,這樣的話對(duì)js/css/jpg/gif等靜態(tài)資源的訪問就會(huì)得不到。

解決方法:在web.xml里添加如下的配置 , 要寫在DispatcherServlet的前面, 讓 defaultServlet先攔截請(qǐng)求,這樣請(qǐng)求就不會(huì)進(jìn)入Spring了。

方案一:激活Tomcat的defaultServlet來(lái)處理靜態(tài)文件

<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>
????
?<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>

這樣就ok啦

Tomcat, Jetty, JBoss, and GlassFish?自帶的默認(rèn)Servlet的名字 -- "default"?
?Google App Engine 自帶的 默認(rèn)Servlet的名字 -- "_ah_default"?
?Resin 自帶的 默認(rèn)Servlet的名字 -- "resin-file"?
?WebLogic 自帶的 默認(rèn)Servlet的名字 -- "FileServlet"?
?WebSphere ?自帶的 默認(rèn)Servlet的名字 -- "SimpleFileServlet"

更新:今天又重新研究了一下這個(gè)問題,發(fā)現(xiàn)還有一種解決方案。

解決方法2:在spring的配置文件中添加如下一行:

<mvc:default-servlet-handler/>

注意,需要是spring3.0.5以上版本

轉(zhuǎn)載于:https://www.cnblogs.com/wcyBlog/p/4013309.html

總結(jié)

以上是生活随笔為你收集整理的Spring3中js/css/jpg/gif等静态资源无法找到(No mapping found for HTTP request with URI)问题解决...的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。