1. 程式人生 > >Spring3中js/css/jpg/gif等靜態資源無法找到(No mapping found for HTTP request with URI)問題解決

Spring3中js/css/jpg/gif等靜態資源無法找到(No mapping found for HTTP request with URI)問題解決

最近專案中使用到Spring3,在感嘆Spring3註解配置清爽的同時竟然出現了這個不和諧的事情,實在無法忍受

問題:部署專案後程序載入或用瀏覽器訪問時出現類似的警告,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'>,主要看尖括號內部分。

問題原因:罪魁禍首是web.xml下對spring的DispatcherServlet請求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>把所有的請求都交給spring去處理了,而所有available的請求url都是在Constroller裡使用類似@RequestMapping(value = "/login/{user}", method = RequestMethod.GET)這樣的註解配置的,這樣的話對js/css/jpg/gif等靜態資源的訪問就會得不到。

解決方法:在web.xml裡新增如下的配置

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

解決方法2:在spring的配置檔案中新增如下一行:

<mvc:default-servlet-handler/>

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

解決方法3

<!-- Handles HTTP GET requests for /resources/** by efficiently serving up static resources in the ${webappRoot}/resources directory -->
 
 <mvc:resources mapping="/resources/**" location="/resources/" /> 
  
這個配置告訴spring 靜態資源的處理方式

相關推薦

Spring3js/css/jpg/gif靜態資源無法找到No mapping found for HTTP request with URI問題解決

最近專案中使用到Spring3,在感嘆Spring3註解配置清爽的同時竟然出現了這個不和諧的事情,實在無法忍受 問題:部署專案後程序載入或用瀏覽器訪問時出現類似的警告,2011-01-19 10:52:51,646 WARN [org.springframework.w

完美解決SpringMVC靜態資源無法找到No mapping found for HTTP request with URI問題

今天遇到一個比較新奇的問題,但是也應該是使用spring MVC框架時由於疏忽經常會遇到的一個,解決後寫出來和大家分享分享。 問題描述:專案正常啟動,可以訪問頁面,但是無法找到靜態資原始檔,如cs

Spring MVC靜態資源攔截No mapping found for HTTP request with URI in DispatcherServlet with name ' '問題

程式載入或用瀏覽器訪問靜態資源時出現以下的警告: No mapping found for HTTP request with URI [/] in DispatcherServlet with name ” 問題原因:預設的訪問的URL都會被Dis

SSM報錯:No mapping found for HTTP request with URI [/smbms/js/echarts.js] in DispatcherServlet with na

在jsp引用ECharts的js包: 啟動Tomcat,在位址列輸入URL:http://localhost:8080/smbms/user/linechart.html 結果頁面空白,報錯日誌部分資訊: [DEBUG] 2017-11-11 09:32:33,160 o

web專案url-pattern改成'/'後,jscss、圖片靜態資源404無法訪問問題解決辦法

1、增加靜態資源url對映 如Tomcat, Jetty, JBoss, GlassFish容器可以這樣定義 (注意一定要在所有servlet之前定義該類對映): <servlet-mapp

解決使用SpringMVC時,cssjs、image靜態資源無法載入的問題

問題:在使用SpringMVC框架時,配置web.xml檔案時,springDispatcherServlet的配置如下 <servlet> <servlet-name>springDispatcherServl

SpringMVC的WEB-INF下的JSP載入js,css,jpg靜態檔案

                                                            -------我是多久沒更新部落格了 SpringMVC在web-inf下的js

web.xml配置訪問資源URL/時無法訪問.html、.jsp、.js、.css靜態資源時的解決方案

在web應用中,我們在web.xml配置URL路徑問題時,經常這樣配置:<servlet-mapping> <servlet-name>spring-MVC</servlet-name> <url-pattern>/<

nginx 配置多個location並解決js/css/jpg/的載入問題

ECS:阿里雲 系統:ubuntu 16.04 我的配置檔案位置: /etc/nginx/conf.d/**.conf 我的靜態網頁的位置: /var/www/** html中載入的js之類

Intellij IdeaJsp頁面不能訪問靜態資源圖片、jscss

tex 文件夾 nbsp 依然 技術分享 很多 路徑 contex mage 最近在學習Spring MVC框架。用Intellij Idea編譯器開發出現了很多因為不了解編譯器配置的問題。 這次是在main.jsp頁面中圖片標簽<img src="images/on

在JSP常見問題,防止SpringMVC攔截器攔截js靜態資源文件的解決方案

訪問路徑 靜態資源 性能 啟用 所有 默認 fault AD init 方案一、攔截器中增加針對靜態資源不進行過濾(涉及spring-mvc.xml) <mvc:resources location="/" mapping="/**/*.js"/> <

SpringBoot頁面跳轉訪問cssjs靜態資源引用無效解決

目錄 一、頁面跳轉 二、情況說明 三、 問題解決方案 1、 引入thymeleaf的依賴包 2、 專案路徑 注意 (1) 頁面引用外部靜態資源的方式 (2) 核心解決方案 一、頁面跳轉 如果你還沒有實現頁面跳轉,推薦閱讀:SpringBoot跳轉渲染頁

webCSS、Xpath路徑定位方法學習

理論 公司 mov border pre -s usr 屬性 chrom 今天不到八點就到公司了,來的比較早,趁著有點時間,總結下web中的CSS、Xpath等路徑定位定位的方式吧! 簡單的介紹下xpath和css的定位 理論知識就不羅列了 還是利用博客園的首頁、直接附上代

ssm 整合js,css 文件無法引入

攔截 整合 bsp 無法 問題 靜態 問題: 導致 直接 問題:ssm 整合中第三方 js,css 文件無法引入 檢查:ssm 整合配置完好 無攔截器攔截 spring mvc 靜態資源已配置 編譯時可以

spring boot 項目 freemarker 無法加載static js css 文件 原因報錯404

oot 相關 bsp mark enable 註解 圖片 tail sdn 去掉@EnableWebMvc 註解 ,相關原因請看原博文 https://blog.csdn.net/testcs_dn/article/details/80249894spring boot

Spring MVC靜態資源的引用適用於spring3.04以上版本

採用<mvc:resources/>標籤即可解決靜態資源的訪問問題,為了方便配置管理,我將專案中所有的靜態資源(js、css、images、)統一放置在一個目錄下:  在你的Spring MVC配置檔案中去增加配置:     

idea tomcat啟動web專案,html、js靜態資源不自動載入解決方案

寫程式碼寫久了,會有程式碼是調試出來不是寫出來的感覺。今天剛剛開啟一個專案,發現修改html或者js等資源後,在瀏覽器重新整理清快取等根本不會載入最新的html檔案,除非重啟tomcat效。不斷重啟tomcat,太費時間了。下面是筆者總結的html不自動更新的處理步驟,筆者用的是mac: 1

nginx dwr,js,css,jpg

location / { proxy_pass http://localhost:8080/; proxy_set_header Host $host; proxy_set_header X-Real-IP $r

Nginx伺服器靜態資源無法訪問,例css,js

在Nginx配置檔案nginx.conf中 <server>內新增 location ~ .*\.(gif|jpg|jpeg|png|bmp|swf|css|js|eot|svg|ttf|woff|woff2|properties|json)$ {      

Vue打包項目圖片靜態資源的處理

引用 字體 html clas 設置 需要 vendor 出錯 AS   項目打包,默認是打包在根目錄下面的。當然我們可以通過設置,打包到任意子目錄中去。 但是,當項目中引入資源的,比如:引入圖片資源、js資源、或者字體圖標之類的。那麽可能在這個中間又會踩坑。 1、在vue