webpack中的publicPath路径问题(output和DevServer中的publicPath的作用)

webpack中的publicPath路径问题(output和DevServer中的publicPath的作用)在 webpack 的配置文件中 output 和 devServer 中都可以设置一个 publicPath 属性 那么两者的作用有什么不同呢 嗯 稍微的分析一下 1 publicPath 在 output 属性里面 设置的其实是一个基础的路径 它会为我们所有的资源都应用上 publicPath 设置的值 然后再接上资源对应转换出来的路径 怎么理解呢 看一下例子就知道了我们在配置文件中设置了一下的值 output

在webpack的配置文件中,output和devServer中都可以设置一个publicPath属性,那么两者的作用有什么不同呢?嗯、稍微的分析一下

1、publicPath在output属性里面,设置的其实是一个基础的路径,它会为我们所有的资源都应用上publicPath设置的值,然后再接上资源对应转换出来的路径,怎么理解呢,看一下例子就知道了

我们在配置文件中设置了一下的值

output:{ path:path.resolve(__dirname,'dist/asset'), filename:'js/main.js', publicPath: "asset/" }

然后我们执行npm run dev进行打包处理,然后看一下,我们index.html中引入的main.js的路径如下所示

我们看到的asset/就是我们在output中设置的值,然后打包之后,它就会加在了js输出的路径上面,成为main.js的基础路径,当然这样使用有可能是会挂掉的,我这里只是举一个小小的例子,真正用的时候还是要视情而定

2、devServer中的publicPath

先稍微介绍一下devServer:当你启动DevServer时,资源还是会打包,但它打包资源之后,这些资源不会放到我们的本地目录里面,而是会放到内存里面,所以我们的DevServer是会到内存里面去查找我们打包好的内容,除了去内存中查找内容以外,它还会到本地目录中查找内容,那devServer中有一个contentBase属性可以控制它去哪里访问本地目录的资源

contentBase默认是当前的工作目录,当它查不到打包在内存中的资源的时候,它就会到contentBase中去找

OK、进入正题:devServer中也有一个publicPath值,它是服务器所打包资源后的输出路径

如果我们没有给它这个值,它就会去拼凑output中publicPath中的值,但如果在DevServer中设置了publicPath,那它就不会去管output中publicPath设置的值了

看例子:在devServer中我们没有设置publicPath,然后output中还是上面例子中的设置,那么此时我们看当我们运行服务器的时候,命令行中会有这样的一句代码

 webpack output is served from /asset/

注意这里的/asset是output中设置的publicPath的值,后面的“/”,devServer的默认值(当我们没有给它设置值的时候,它的默认值就是“/”)

那,如果我们为devServer中的publicPath设置了值,看例子

 output:{ path:path.resolve(__dirname,'dist/asset'), filename:'js/main.js', publicPath: "asset/" }, devServer: { contentBase: './dist', publicPath:"/" }

运行服务器的时候,命令行输出的代码是这样的

webpack output is served from /

说了这么多,其实就是为了理解publicPath的不同作用,实际的应用中,我们更倾向于将output和devServer中的publicPath都设置为“/”

那总结一下:output中的publicPath是资源打包的基础路径,output中的path才是设置的资源打包后的输出路径

devServer中的publicPath设置的是资源会被打包到哪里


版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/208190.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月19日 下午12:08
下一篇 2026年3月19日 下午12:08


相关推荐

  • margin的使用方法与技巧

    1.margin还可以用来做平移,作用类似translate哈哈。将元素设成absolute后就可以用margin随便平移他了,既不像relative那样要霸占空间,又不用为父元素设置relative

    2021年12月20日
    56
  • 什么叫侧面指纹识别_侧面指纹识别真的只是大法一家独有?

    什么叫侧面指纹识别_侧面指纹识别真的只是大法一家独有?好久不见~!,ZAKER科技的各位机友们,第14期《每周猜机》又跟大家见面了。每周猜机到14期了,这期间离不开各位同学的支持,也希望各位同学能继续关注这个栏目。先透漏这期的主题也是前两期前后指纹识别主题的延伸,请各位猜机大神再接再厉,接下这期猜机:前两期的每周猜机,师兄已经可以看出各位同学对于前后指纹识别都有自己的见解,两方僵持不下,那师兄这次就提出一个中立解决方案——侧面指纹识别,现…

    2022年6月26日
    190
  • 10个linux常用命令_linux常用命令及实例

    10个linux常用命令_linux常用命令及实例文章目录20个linux常用命令1.ls:列出文件list2.cd:切换目录changedirectory3.cp:复制copy4.mv:移动move5.rm:移除,删除remove6.mkdir:创建文件夹makedirectory7.rmdir:移除,删除文件夹removedirectory8.chown:更改所有者changeowner9.chmod:更改文件的权限模式changemode10.find:查找11.|:管道12.grep:按行查找并匹配13.tar:

    2022年8月24日
    9
  • 阿里云服务器使用freessl配置免费证书Nginx

    阿里云服务器使用freessl配置免费证书Nginx环境:阿里云服务器购买的域名服务器:linux+nginxSSL证书:FreeSSL申请的免费证书步骤1、申请ssl证书具体参考二哥的“五分钟搞定HTTPS配置,二哥手把手教”https://blog.csdn.net/qing_gee/article/details/90031376博客,这位大佬写的很详细了2、配置阿里云服务器2.1、上传证书登陆阿里云控制台,搜索“ssl证书应用安全”,上传原有证书,注意一定要将证书转换为pem格式2.2、开启服务器443.

    2025年6月11日
    7
  • 银河麒麟内网离线环境部署本地DeepSeek模型

    银河麒麟内网离线环境部署本地DeepSeek模型

    2026年3月16日
    3
  • Android蓝牙开发教程(一)——搜索蓝牙设备[通俗易懂]

    Android蓝牙开发教程(一)——搜索蓝牙设备[通俗易懂]Android蓝牙功能的开发一直是很多新手头疼的问题,网上虽然也有很多教程贴,但大多都写得不全面,不能让我们真正掌握蓝牙开发的基本知识。本教程主要讲解搜索蓝牙设备、蓝牙设备之间的连接和蓝牙之间的通讯三个主要模块。掌握了这三个,基本就能进行简单的蓝牙开发了。先上效果图界面比较简单。主要有三个按钮,两个文本和一个列表。三个按钮主要对应打开蓝牙,搜索设备和发送信息三个功能。两个文本主…

    2022年7月15日
    28

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号