publicPath: 顧名思義就是一個(gè)公共地址糟趾,用于處理靜態(tài)資源的引用地址問題,比如圖片的地址路徑問題挖函。尤其是在你打包圖片生成的路徑與html的不在同一個(gè)目錄時(shí)论咏,這個(gè)時(shí)候就必須用publicPath來指定圖頻引用徑。
舉例來說:
module.exports = {
output: path.resolve(__dirname, '../dist')
}
ps:這個(gè)代碼表示當(dāng)前所有打包數(shù)據(jù)是在dist目錄下
{
test: /\.(png|jpe?g|gif|svg)(\?.*)?$/,
loader: 'url-loader',
options: {
limit: 10000,
name: 'static/img/[name].[hash:7].[ext]'
}
},
這個(gè)是一個(gè)圖片的loader袍嬉,會在dist目錄下面生成一個(gè)static/img文件夾存放打包的圖片
如圖所示境蔼,在a1.vue中引入一張圖片,此時(shí)編譯生成的js被a1.html引用伺通,此時(shí)打包的圖片和html不在同一個(gè)目錄下箍土。
在不加publicPath的情況下,默認(rèn)為空罐监,此時(shí)系統(tǒng)會從html的當(dāng)前目錄去找 目錄為static/img 下的圖片吴藻,當(dāng)然就是找不到的
像當(dāng)前這種情況就很需要去指定publicPath,使得圖片能正確索引到弓柱。
publicPath可以設(shè)置相對地址沟堡,如果是相對地址是相對于當(dāng)前的html,在本例中就是相對于a1.html矢空,此時(shí)如果要讓圖片正確所引到航罗,可以設(shè)置publicPath為 '../../../../'
2.另一種是設(shè)置成絕對地址:publicPath 設(shè)為相對于協(xié)議url(//)或http地址(http://),比如publicPath:'http://wwww.qinshenxue.com/static/'(開發(fā)環(huán)境不應(yīng)該使用)屁药,使用這個(gè)的場景是將資源托管到CDN粥血,比如公司的靜態(tài)資源服務(wù)器等。設(shè)置絕對地址時(shí)應(yīng)該以'/'結(jié)尾者祖,同時(shí)其他loader或插件的配置不要以'/'開頭立莉。