web前端一般常用檔案 .html .css .js。但是當用css檔案和html引入資源(比如圖片)時,路徑可能不相同。下面總結了幾條。
使用相對路徑引入規則:
- html或者js引入圖片,按照html的目錄來算
- css引入圖片,按照css的目錄來計算。
那什麼是html目錄:
例如:http://ip/a/b 請求回來的是html檔案,那麼html檔案的目錄就是/a/ 資料夾,如果此html有一段程式碼:
<link rel="stylesheet" href="css/aa.css">
那麼,css檔案的實際引用的路徑為 /a/css/aa.css
什麼是css目錄
簡單說就是css檔案的存放地址。這兒是/a/css
接上面的地址,css檔案(/a/css/aa.css
)被引用後,它有一段程式碼background:url(`img/cc.png`)
.
那麼 cc.png
的實際引用地址為/a/css/img/cc.png
。
存在的問題:
如果使用前端路由並採用history
模式,引入採用相對路徑,則可能出現問題。當路由到達2級目錄地址時比如: http://ip/1/2
,此頁面如果採用有相對路徑的引用,就會失敗。所有相對引用地址前都會被加上 /1/
這個目錄地址。當你在此頁面重新整理時,bug就出來了。
ps: 這兒所說的地址不是打包前的地址,是打包後真實的地址。往後一篇會根據此筆記要點,使用nginx + 一個埠,部署多個採用前端路由(history模式)單頁應用。