當前位置:
首頁 > 知識 > 巧設publicPath,優雅適配生產環境要求

巧設publicPath,優雅適配生產環境要求


使用vue或者angular 2的同學肯定離不開webpack,vue-cli等配置構建工具的出現,更是解放了開發者不少的負擔。

1. vue-cli對靜態資源的默認行為

vue-cli默認將生產環境的靜態資源放在dist目錄下,html載入js、css或者css載入png或者svg等靜態資源時通常以dist目錄為根目錄,使用絕對路徑進行載入。

2. 實際遇到的問題

但是大多數app靜態資源並不會直接放到伺服器根目錄(以www.baidu.com為例),而是放在二級或者三級目錄下,如www.baidu.com/yunpan,這樣上面默認的配置將會導致載入不到對應靜態資源,打開Chrome Devtools會發現,下載js、css、png的url如下:

這些請求通通報錯404 Not found

多動手試一下,發現以下url的響應會是200 OK,得到實際需要的靜態資源

3. 原因以及解決方案

url-loader根據options的name屬性將靜態資源放置到對應目錄,同時對html或者css引用靜態資源的url進行修改,這也是vue-loader推薦大家自由放置靜態資源而不用關心生產環境url指向的原因。

但是遇到app部署到網站二級目錄的特殊場景,就自然而然地出現上面的問題。有人推薦修改/config/index.js中的config.build.assetsPublicPath為"",嘗試後發現只能修正html引用js、css的問題,不能修正css引用image、iconfont等靜態資源的問題。

實際上,你無須改變config.build.assetsPublicPath,只需要在/build/webpack.prod.conf.js中output增加publicPath,將其置為"/yunpan/"即可。

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 科技優家 的精彩文章:

PHP設計模式:簡單工廠
《基於Node.js實現簡易聊天室系列之詳細設計》
libpng處理png圖片(二)
我們用了不到200行代碼實現的文件日誌系統,極佳的IO性能和高並發支持,附壓力測試數據

TAG:科技優家 |

您可能感興趣

如何用適配器使VirtualLink介面顯卡支持Oculus Rift頭
蘋果宣布iWork套件更新:適配Apple Pencil
Spotify正式推出適配Apple Watch的APP
iPhoneX適配不理想?蘋果要求所有App必須適配iPhoneX!
Valve Index支持VirtualLink,但要額外購買適配器
如何用適配器使VirtualLink介面顯卡支持Oculus Rift頭顯
如何為Oculus Rift設置TPCast無線適配器指南
Valve砍掉Index頭顯VirtualLink適配器
V社取消Index VirtualLink適配器
Inclusive Technology發布通過滑鼠操縱iOS設備的適配器
DisplayLink為Oculus Rift研發60GHz無線適配器參考設計
App Store新規:iOS所有應用將必須適配iPhone X
如何創建Istio Mixer適配器——來自Circonus公司的分享
亞馬遜Alexa終於適配蘋果iPhone X
Electra越獄工具:適配iOS,帶Cydia
Valve:Knuckles完全支持Vive無線適配器
Jolla Sailfish 3發布:將適配索尼Xperia XA2
外國公司Innerexile開啟ThunderMag磁吸適配器眾籌
Valve終放棄VR頭顯VirtualLink適配器
iOS開發 適配iPhoneX/iPhoneXr/iPhoneXs/iPhonexs max