idea中javaweb的jsp頁面圖片加載不出來問題及解決
idea中javaweb的jsp頁面圖片加載不出來
方式一
刪掉out輸出文件,重新生成(刪除out文件夾,然后運(yùn)行)
處理前:

處理后:

方式二
更改路徑(將路徑改為tomcat下的應(yīng)用程序上下文里的內(nèi)容+地址)

原路徑:
<img src="../image/logo.jpg" alt="Paris" width="120" height="120"></div>
修改后的路徑:
<img src="/Paris/image/logo.jpg" alt="Paris" width="120" height="120"></div>
idea部署javaweb項(xiàng)目jsp無法加載圖片(資源無法加載的問題)
發(fā)現(xiàn)圖片加載不出來,按了f12,發(fā)現(xiàn)404nofound,于是乎花了一天時(shí)間看博客
可能的原因有幾個(gè):
圖片文件夾的位置弄錯(cuò)了
不應(yīng)該把圖片等靜態(tài)資源放入WEB-INF里面,應(yīng)該放入和WEB-INF的同等級(jí)的目錄下

借用一下百度百科的解釋
WEB-INF是Java的WEB應(yīng)用的安全目錄。所謂安全就是客戶端無法訪問,只有服務(wù)端可以訪問的目錄。
如果想在頁面中直接訪問其中的文件,必須通過web.xml文件對(duì)要訪問的文件進(jìn)行相應(yīng)映射才能訪問。
WEB-INF文件夾下除了web.xml外,還存一個(gè)classes文件夾,用以放置 *.class文件,這些 *.class文件是網(wǎng)站設(shè)計(jì)人員編寫的類庫,實(shí)現(xiàn)了jsp頁面前臺(tái)美工與后臺(tái)服務(wù)的分離,使得網(wǎng)站的維護(hù)非常方便。web.xml文件為網(wǎng)站部署描述XML文件,對(duì)網(wǎng)站的部署非常重要。
在jsp中訪問靜態(tài)資源的方法
<body style="background-image:url(img/bgc.jpg);background-repeat: no-repeat;background-size: cover;"> <img src="img/icon_賬號(hào).png" style="width:1.5rem;height:1.5rem;vertical-align: middle;">
由于我放在web目錄下,所以直接用相對(duì)路徑訪問,img/bgc.jpg就可以訪問到了。通常不建議使用絕對(duì)路徑,因?yàn)榇罱ㄍ戤吅螅窂绞菚?huì)有改變的。
訪問的路徑不對(duì)
在我這個(gè)項(xiàng)目里面,假如使用絕對(duì)路徑的話
那么應(yīng)該是這個(gè)格式
<%String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; 協(xié)議://server名字+:端口號(hào)(Tomcat默認(rèn)8080)+(web目錄下的路徑)+"/" %>
這個(gè)是我的:http://localhost:8080/servletdemo_war_exploded/img/bgc.jpg
使用相對(duì)路徑的話那么應(yīng)該是img/xxx.jpg
可能是攔截器的問題
把WEB-INF下的web.xml文件添加上下面的代碼
<servlet-mapping>
<servlet-name>default</servlet-name>
<url-pattern>*.gif</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>default</servlet-name>
<url-pattern>*.png</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>default</servlet-name>
<url-pattern>*.jpg</url-pattern>
</servlet-mapping>四.可能是tomcat配置,以及項(xiàng)目out沒更新的問題

打開tomcat配置

設(shè)置為熱部署

添加img文件夾的依賴

重啟項(xiàng)目發(fā)現(xiàn)out目錄出現(xiàn)了img文件夾就可以了
有時(shí)候可能因?yàn)榫彺鎲栴},里面的東西沒有刷新,造成很多玄學(xué)事件 = =,例如有的圖片可以訪問,有的不可以,這時(shí)可以把整個(gè)out文件夾刪掉,重啟項(xiàng)目,估計(jì)就好了。
這次發(fā)現(xiàn)圖片加載不了。學(xué)會(huì)了很多東西,例如img資源放置的位置,例如tomcat的熱部署問題,還有絕對(duì)路徑和相對(duì)路徑的問題。
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
springboot結(jié)合websocket聊天室實(shí)現(xiàn)私聊+群聊
本文主要介紹了springboot結(jié)合websocket聊天室實(shí)現(xiàn)私聊+群聊,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2022-07-07
Springboot項(xiàng)目編譯后未能加載靜態(tài)資源文件的問題
這篇文章主要介紹了Springboot項(xiàng)目編譯后未能加載靜態(tài)資源文件的問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-08-08
java面試題之try中含return語句時(shí)代碼的執(zhí)行順序詳解
這篇文章主要介紹了關(guān)于java中的一道面試題,這套題就是在try中含return語句時(shí)代碼的執(zhí)行順序,這個(gè)問題看似簡(jiǎn)單,卻暗藏殺機(jī)啊!文中通過一個(gè)個(gè)例子詳細(xì)介紹了其中玄機(jī),需要的朋友可以參考學(xué)習(xí),下面來一起看看吧。2017-04-04
Java實(shí)戰(zhàn)之兼職平臺(tái)系統(tǒng)的實(shí)現(xiàn)
這篇文章主要介紹了如何利用Java編寫一個(gè)兼職平臺(tái)系統(tǒng),采用到的技術(shù)有Springboot、SpringMVC、MyBatis、ThymeLeaf等,感興趣的小伙伴可以了解一下2022-03-03

