idea中javaweb的jsp頁(yè)面圖片加載不出來(lái)問(wèn)題及解決
idea中javaweb的jsp頁(yè)面圖片加載不出來(lái)
方式一
刪掉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無(wú)法加載圖片(資源無(wú)法加載的問(wèn)題)
發(fā)現(xiàn)圖片加載不出來(lái),按了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ú)法訪問(wèn),只有服務(wù)端可以訪問(wèn)的目錄。
如果想在頁(yè)面中直接訪問(wèn)其中的文件,必須通過(guò)web.xml文件對(duì)要訪問(wèn)的文件進(jìn)行相應(yīng)映射才能訪問(wèn)。
WEB-INF文件夾下除了web.xml外,還存一個(gè)classes文件夾,用以放置 *.class文件,這些 *.class文件是網(wǎng)站設(shè)計(jì)人員編寫(xiě)的類庫(kù),實(shí)現(xiàn)了jsp頁(yè)面前臺(tái)美工與后臺(tái)服務(wù)的分離,使得網(wǎng)站的維護(hù)非常方便。web.xml文件為網(wǎng)站部署描述XML文件,對(duì)網(wǎng)站的部署非常重要。
在jsp中訪問(wèn)靜態(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ì)路徑訪問(wèn),img/bgc.jpg就可以訪問(wèn)到了。通常不建議使用絕對(duì)路徑,因?yàn)榇罱ㄍ戤吅?,路徑是?huì)有改變的。
訪問(wèn)的路徑不對(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
可能是攔截器的問(wèn)題
把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沒(méi)更新的問(wèn)題
打開(kāi)tomcat配置
設(shè)置為熱部署
添加img文件夾的依賴
重啟項(xiàng)目發(fā)現(xiàn)out目錄出現(xiàn)了img文件夾就可以了
有時(shí)候可能因?yàn)榫彺鎲?wèn)題,里面的東西沒(méi)有刷新,造成很多玄學(xué)事件 = =,例如有的圖片可以訪問(wèn),有的不可以,這時(shí)可以把整個(gè)out文件夾刪掉,重啟項(xiàng)目,估計(jì)就好了。
這次發(fā)現(xiàn)圖片加載不了。學(xué)會(huì)了很多東西,例如img資源放置的位置,例如tomcat的熱部署問(wèn)題,還有絕對(duì)路徑和相對(duì)路徑的問(wèn)題。
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
詳解Java LinkedHashMap與HashMap的使用
這篇文章主要通過(guò)幾個(gè)示例為大家詳細(xì)介紹了Java中LinkedHashMap與HashMap的常見(jiàn)使用和概述,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2022-10-10SpringMVC使用@Valid注解實(shí)現(xiàn)數(shù)據(jù)驗(yàn)證的代碼示例
在 Web 開(kāi)發(fā)中,數(shù)據(jù)驗(yàn)證是一個(gè)非常重要的環(huán)節(jié),它可以確保數(shù)據(jù)的合法性和正確性,保護(hù)系統(tǒng)不受到惡意攻擊或用戶誤操作的影響,在 SpringMVC 中,我們可以使用 @Valid 注解來(lái)實(shí)現(xiàn)數(shù)據(jù)驗(yàn)證,所以本文就給大家介紹具體的使用方法,需要的朋友可以參考下2023-07-07SpringSecurity多表多端賬戶登錄的實(shí)現(xiàn)
本文主要介紹了SpringSecurity多表多端賬戶登錄的實(shí)現(xiàn)2024-05-05使用springboot 獲取控制器參數(shù)的幾種方法小結(jié)
這篇文章主要介紹了使用springboot 獲取控制器參數(shù)的幾種方法小結(jié),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-12-12SpringBoot使用Filter實(shí)現(xiàn)簽名認(rèn)證鑒權(quán)的示例代碼
這篇文章主要介紹了SpringBoot使用Filter實(shí)現(xiàn)簽名認(rèn)證鑒權(quán)的示例代碼,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2021-04-04解讀@RequestBody與post請(qǐng)求的關(guān)系
這篇文章主要介紹了解讀@RequestBody與post請(qǐng)求的關(guān)系,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-12-12