Vue-Cli 訪問靜態(tài)文件

  • 版本:
    D:>vue -V
    @vue/cli 4.5.7

  • 目錄結(jié)構(gòu)


    image.png
  • 問題:
    無論如何設置,都無法訪問/static的圖片,百思不得其解!

-解決:
找了半天,發(fā)現(xiàn)根目錄居然有一個/static的文件夾,事實上,vue的靜態(tài)文件是放在/public/static里的,這個長在根目錄下的/static是怎么來的???原因未知。這下就好辦了,把圖片挪到/public/static里,一切正常。

  • 結(jié)論:
  1. /public/static的資源,只能用絕對地址來訪問:
    <img src="/static/logo.png" />
    <img :src="'/static/logo.png'" />
    注意第1行是HTML最傳統(tǒng)的加載方法,就是顯示一副固定圖片。
    第2行是vue將src屬性進行了雙向綁定,此處的'/static/logo.png',很明顯它就是一個字符串,因此也可用一個變量來表達,便于動態(tài)加載圖片。用這種方式webpack不會對其進行打包,static下的所有文件只是原封不動地進行Copy處理(但仍然是按需原則,那些完全沒有使用到的資源并不會被拷貝)

  2. /src/assets內(nèi)的資源,可以用相對地址來訪問:
    <img :src="require('../assets/logo.png')" />
    以這種形式加載,同樣對src進行了雙向綁定,可以支持動態(tài)加載,但webpack會將其打包,并修改其文件名。

  3. 任意目錄的資源,可以用相對地址來訪問:
    <img src = "../../hello/logo.png" />
    假設有/hello這個目錄,可以用相對地址進行訪問(任意目錄),但是webpack會自動將它轉(zhuǎn)化為base64圖片字符串形式,并且這種方式只能訪問固定資源,無法雙向綁定,自然也無法使用變量來動態(tài)加載了。

  4. 心得:當發(fā)現(xiàn)無法訪問static的資源時,先看看static是不是在public下,免得走冤枉路!

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容