考:https://www.jb51.net/article/163170.htm
vue中靜態資源的引入機制
靜態資源可以通過兩種方式進行處理:
在 JavaScript 被導入或在 template/CSS 中通過相對路徑(以 . 開頭)被引用。這類引用會被 webpack 處理。
如 <img src="..."> 、 background: url(...) 和 CSS @import 的資源
例如, url(./image.png) 會被翻譯為 require('./image.png')
放置在 public 目錄下或通過絕對路徑被引用。這類資源將會直接被拷貝,而不會經過 webpack 的處理,你需要通過絕對路徑來引用它們。如果 URL 是一個絕對路徑,例如 /images/foo.png ,它將會被保留不變。
假設有這樣一個目錄:
vue-path/ ----- public/ -------- images/ ------------ XX.jpg ----- src/ -------- assets/ ------------ images/ ---------------- XX.jpg -------- App.vue
一、常見的引入方式,路徑是固定的字符串,圖片會被webpack處理,文件若丟失會直接在編譯時報錯,生成的文件包含了哈希值:
<img src="./assets/images/01.jpg" alt="">
編譯后:
好程序員分享html圖片絕對路徑改相對路徑,要弄懂相對路徑修改成絕對路徑那么必須要知道路徑的基本概念。
html中的路徑:指文件存放的位置,在網頁中利用路徑可以引用文件,完成:插入圖像、視頻等功能。表示在html中路徑的使用方式有兩種:相對路徑,絕對路徑。
1、相對路徑:
html中的相對路徑的概念是:指當前html頁面引用的文件 相對于 當前html頁面文件的路徑,在html網頁開發過程中多采用這種方法來引用我們所想使用的內容。
相對路徑有多種使用的方法,這些方法標識表示的意義也不相同。那么接下來我們來看一下是如何使用的。
./ :代表文件所在的目錄(通常情況下可以省略不寫)
../ :代表文件所在的父級目錄(也就是上一級目錄)
../../ :代表文件所在的父級目錄的父級目錄(也就是上一級上一級目錄)
/ :代表文件所在的根目錄
如:<img src=’images/1.jpg’/>表示此代碼所在html文件的路徑下的images文件夾下的1.jpg文件。
<img src=’../images/1.jpg’/>表示此代碼所在html文件的路徑的上一級的images文件夾下的1.jpg文件。
2、絕對地址:
就是直接從磁盤的位置去定位文件的地址。類似于我們通過我的電腦一盤符的方式來尋找想要的指定內容,或者說直接帶著協議、域名,
3、如何把html圖片絕對路徑改為相對路徑
可以使用html當中給我們提供的<base/>標簽來完成。<base> 標簽為頁面上的所有路徑的引用設置了默認地址或默認目標。 通常情況下,瀏覽器會從當前文檔的 URL 中獲取到相應的元素來填寫相對的引用路徑。
首先<base/>標簽是一個單標簽,同時所有的瀏覽器都支持 <base/>這一個標簽標簽所以兼容性上大家不用考慮。同時在使用<base/>標簽的時候必須注意<base/>標簽,必須放置到html網頁的<head></head>標簽當中,同時每一個html頁面當中最多只能有一個<base/>標簽,它的作用也很明顯。就是用來為html頁面上的所有路徑引用來規定默認地址或默認目標,是一種設置網頁中引用路徑的標記。
剛才我們已經在前面提到了 在html中常見的路徑形式有相對路徑和絕對路徑,那么在這個時候使用了<base/>標簽指定了目標的話,那么我們的用戶使用的客戶端瀏覽器就會把這個內容解析成為當前html中引用大的所有相對路徑,同時包括<a></a>超鏈接標簽、<img/>圖片標簽、<link>css引用標簽、<form></form> 表單標簽中的地址。也就是說,瀏覽器解析的時候會在引用的路徑的前面會自動的加上<base/>上面綁定的地址,同時在這個時候頁面中的相對路徑也都會被轉換成為絕對路徑。
使用語法:
<head>
<base href="目標路徑" />
</head>
引用外部文件(如超鏈接或者插入圖片)時,經常會遇到我們的頁面文件跟要引用的目標文件不在同一目錄下的情況,這個時候,就帶來了文件引用路徑的問題。通常情況下,我們將引用的路徑分為兩種情況,絕對路徑和相對路徑。
絕對路徑是指文件在硬盤上真正存在的路徑,即物理路徑。例如“bg.jpg”這個圖片是存放在硬盤的“D:\work\code\imgs”目錄下,那么, “bg.jpg”這個圖片的絕對路徑就是:
<img src="D:\work\code\imgs\bg.jpg" >
通常我們使用絕對路徑,更多應用是在定位網絡資源上,
如:https://image.so.com/i?ie=utf-8&src=hao_360so&q=%E6%95%85%E5%AE%AB%E7%BB%9D%E7%BE%8E%E9%9B%AA%E6%99%AF
在實際開發中,我們很少會使用絕對路徑,如果使用“D:\work\code\imgs\bg.jpg”來指定背景圖片的位置,在自己的計算機上 瀏覽可能會一切正常,但是上傳到Web服務器上瀏覽就很有可能不會顯示圖片了。因為上傳到Web服務器上時,可能整個網站并沒有放在Web服務器的D盤, 有可能是E盤或H盤。即使放在Web服務器的D盤里,Web服務器的E盤里也不一定會存在“D:\work\code\imgs\bg.jpg”這個目錄,因此在瀏覽網頁時是不會顯示圖片的
為了不同設備存放路徑不一致的這種情況,通常在網頁中指定文件時,都會選擇使用相對路徑。所謂相對路徑,就是相對于當前文件的位置。關于相對路徑,有以下三種情況:
當圖像文件和HTML文件位于同一文件夾時,只需輸入圖像文件的名稱即可,如:
<img src="1.png">
當圖像文件位于HTML文件的下一級文件夾,輸入文件夾名和文件名,之間用“/”隔開,如:
<img src="img/2.png">
當圖像文件位于HTML文件的上一級文件夾,在文件名之前加入“…/” ,如果是上兩級,則需要使用 “…/ …/”,以此類推,如:
<im background="../img/0.png">
*請認真填寫需求信息,我們會在24小時內與您取得聯系。