web前端對檔案的引用規則

吃個石頭發表於2019-02-16

web前端一般常用檔案 .html .css .js。但是當用css檔案和html引入資源(比如圖片)時,路徑可能不相同。下面總結了幾條。

使用相對路徑引入規則:

  1. html或者js引入圖片,按照html的目錄來算
  2. 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模式)單頁應用。

相關文章