Webpack path與publicPath的區(qū)別詳解
前言
在webpack模塊化開發(fā)的過程中,發(fā)現(xiàn)webpack.config.js配置文件的輸出路徑總有一個path與publicPath,不解其意。
module.exports = {
output: {
path: path.resolve("./examples/dist"),
filename: "app.js",
publicPath: "What should I put here?"
}
}
正文
官方解釋
publicPath: The output.path from the view of the Javascript / HTML page.
從JS/HTML頁面來看的輸出路徑
我的理解
output.path 儲存你所有輸出文件的本地文件目錄。(絕對路徑)
舉個例子:
path.join(__dirname, “build/”)
webpack將會把所有的文件輸出到localdisk/path-to-your-project/build/
output.publicPath
你上傳所有打包文件的位置(相對于服務(wù)器根目錄)
path:用來存放打包后文件的輸出目錄
publicPath:指定資源文件引用的目錄
用處:例如在express中,指定了public/dist是網(wǎng)站的根目錄,網(wǎng)站的源文件存放在public中,那么就需要設(shè)置path:”./dist”指定打包輸出到該目錄,而publicPath就需要設(shè)置為”/”,表示當(dāng)前路徑。
publicPath取決于你的網(wǎng)站根目錄的位置,因為打包的文件都在網(wǎng)站根目錄了,這些文件的引用都是基于該目錄的。假設(shè)網(wǎng)站根目錄為public,引用的圖片路徑是'./img.png',如果publicPath為'/',圖片顯示不了,因為圖片都打包放在了dist中,那么你就要把publicPath設(shè)置為”/dist”。
舉個例子:
/assets/
假設(shè)你將這個工程部署在服務(wù)器 http://server/
通過將output.publicPath設(shè)置為/assets/,這個工程將會在http://server/assets/找到webpack資源。
在這種前提下,所有與webpack相關(guān)的路徑都會被重寫成以/assets/開頭。
src="picture.jpg" Re-writes ➡ src="/assets/picture.jpg" Accessed by: (http://server/assets/picture.jpg) src="/img/picture.jpg" Re-writes ➡ src="/assets/img/picture.jpg" Accessed by: (http://server/assets/img/picture.jpg)
重要
如果你在用style-loader或者css sourceMap,你就需要設(shè)置publicPath。把它設(shè)置成服務(wù)器地址的絕對路徑,比如http://server/assets/,這樣資源可以被正確加載。
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
原生js仿jq判斷當(dāng)前瀏覽器是否為ie,精確到ie6~8
這篇文章主要介紹了原生js仿jq判斷當(dāng)前瀏覽器是否為ie,精確到ie6~8,需要的朋友可以參考下2014-08-08
Bootstrap實現(xiàn)默認(rèn)導(dǎo)航欄效果
這篇文章主要介紹了Bootstrap實現(xiàn)默認(rèn)導(dǎo)航欄效果,導(dǎo)航欄是一個很好的功能,是Bootstrap網(wǎng)站的一個突出特點,本文帶領(lǐng)大家學(xué)習(xí)實現(xiàn)Bootstrap導(dǎo)航欄,需要的朋友可以參考下2015-12-12
html2canvas+jspdf實現(xiàn)下載pdf文件并添加水印
這篇文章主要為大家詳細(xì)介紹了如何使用html2canvas + jspdf進行下載pdf文件添加水印,以及echarts圖片防止截斷處理,有需要的小伙伴可以了解下2024-10-10

