Webpack打包后页面图片路径错误的解决方案
Webpack 打包后的图片路径出错,真挺常见的,尤其是你想直接在浏览器里打开index.html
的时候。图片不显示,多半是publicPath
没设对,路径走偏了。
Webpack 的publicPath
其实就是告诉浏览器:‘嘿,静态资源去哪找!’如果你设置成'/src/'
,结果路径就成了/src/images/xxx.png
,而你页面根本没这个路径,就挂了。
开发环境下,路径设灵活点问题不大,比如:
output: {
publicPath: '/src/'
}
这样在本地跑没啥事。但到了生产环境,建议你把publicPath
设成'/'
,保持统一,比如:
output: {
publicPath: '/'
}
嗯,说到底,不同环境得用不同配置。
还有啊,loader也得配好。像图片文件,建议你用url-loader
,限制一下大小还能转 base64,小图更高效:
module: {
loaders: [
{
test: /\.(png|jpg)$/,
loader: 'url-loader',
options: {
limit: 8192,
name: 'images/[hash:8].[name].[ext]',
publicPath: '/'
}
}
]
}
记住一点,路径统一 + loader 设置正确,基本就不会出问题。
如果你还想搞清楚publicPath
背后的逻辑,可以看看Webpack 中 publicPath 路径详解;想系统配置 Webpack,也推荐Webpack 配置文件指南。
哦对了,如果你要切换环境配置,别忘了可以写成函数根据NODE_ENV
来判断,那样就更灵活啦。
51.66KB
文件大小:
评论区