devServer.publicPath
首先devServer这个字段只在development环境下生效,所以涉及到此字段的都在development模式下。devServer.publicPath默认是‘/’,表示外部用什么路径访问任何文件
需要注意的是,如果该字段设置成类型devServer.publicPath=“/demo”,的值,访问所有的文件都会以
<script type="text/javascript" src="demo/js/main.js"></script>的形式访问,前面加"demo/"前缀,
同样这个需要把所有的接口设置同样加上这个前缀,否则,会把这个接口当成路由返回的模版页面,
如果,想要把接口的前缀去掉,可以通过weboack中proxy。
output.publicPath
这个字段是给所有的静态资源自动加上前缀,如果上面的devServer.publicPath没有设置,此时,devServer.publicPath会取output.publicPath的值。
如果两者都设置的,不仅会给静态文件加上output.publicPath的前缀,访问静态文件需要改变前缀为devServer.publicPath,否者取不到数据。
例如:devServer.publicPath=“dev/”
output.publicPath=“out/”
这个时候所有的静态文件加上“out/”,但是这个时候取不到数据,因为devServer.publicPath=“dev/”,所以需要把静态文件的前缀设置成“dev/”,这个时候可以通过webpack中proxy更改前缀。但是强烈不建议这个写,这个属性尽量保持一致
output.path
表示给静态文件输出的路径
参考:https://www.jianshu.com/p/7d43d45b3ebf