Webpack path与publicPath的区别详解


Posted in Javascript onMay 03, 2018

前言

在webpack模块化开发的过程中,发现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

你上传所有打包文件的位置(相对于服务器根目录)

path:用来存放打包后文件的输出目录

publicPath:指定资源文件引用的目录

用处:例如在express中,指定了public/dist是网站的根目录,网站的源文件存放在public中,那么就需要设置path:”./dist”指定打包输出到该目录,而publicPath就需要设置为”/”,表示当前路径。

publicPath取决于你的网站根目录的位置,因为打包的文件都在网站根目录了,这些文件的引用都是基于该目录的。假设网站根目录为public,引用的图片路径是'./img.png',如果publicPath为'/',图片显示不了,因为图片都打包放在了dist中,那么你就要把publicPath设置为”/dist”。

举个例子:

/assets/

假设你将这个工程部署在服务器 http://server/

通过将output.publicPath设置为/assets/,这个工程将会在http://server/assets/找到webpack资源。

在这种前提下,所有与webpack相关的路径都会被重写成以/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,你就需要设置publicPath。把它设置成服务器地址的绝对路径,比如http://server/assets/,这样资源可以被正确加载。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
jquery BS,dialog控件自适应大小
Jul 06 Javascript
JavaScript 学习笔记一些小技巧
Mar 28 Javascript
js函数的引用, 关于内存的开销
Sep 17 Javascript
基于jquery实现的文字淡入淡出效果
Nov 14 Javascript
用jquery写的一个万年历(自写)
Jan 20 Javascript
jQuery中val()方法用法实例
Dec 25 Javascript
一起学写js Calender日历控件
Apr 14 Javascript
微信小程序 地图定位简单实例
Oct 14 Javascript
详解node+express+ejs+bootstrap构建项目
Sep 27 Javascript
nginx配置React静态页面的方法教程
Nov 03 Javascript
postman+json+springmvc测试批量添加实例
Mar 31 Javascript
angularjs1.5 组件内用函数向外传值的实例
Sep 30 Javascript
Webpack中publicPath路径问题详解
May 03 #Javascript
Angular Renderer (渲染器)的具体使用
May 03 #Javascript
react router4+redux实现路由权限控制的方法
May 03 #Javascript
vue.js学习笔记之v-bind和v-on解析
May 03 #Javascript
jQuery实现每隔一段时间自动更换样式的方法分析
May 03 #jQuery
详解VueJs中的V-bind指令
May 03 #Javascript
基于vue,vue-router, vuex及addRoutes进行权限控制问题
May 02 #Javascript
You might like
一个简单的php加密解密函数(动态加密)
2013/06/19 PHP
PHP获取数组长度或某个值出现次数的方法
2015/02/11 PHP
php防止CC攻击代码 php防止网页频繁刷新
2015/12/21 PHP
PHP微信API接口类
2016/08/22 PHP
去除链接虚线全面分析总结
2006/08/15 Javascript
ExtJs扩展之GroupPropertyGrid代码
2010/03/05 Javascript
javascript json2 使用方法
2010/03/16 Javascript
js Map List 遍历使用示例
2013/07/10 Javascript
Jquery的hide及toggle方法让超链接慢慢消失
2013/09/06 Javascript
jQuery的$.proxy()应用示例介绍
2014/04/03 Javascript
jQuery中:last-child选择器用法实例
2014/12/31 Javascript
分享一个自己写的简单的javascript分页组件
2015/02/15 Javascript
JS获取iframe中marginHeight和marginWidth属性的方法
2015/04/01 Javascript
jQuery Validate初步体验(一)
2015/12/12 Javascript
jQuery+CSS3实现四种应用广泛的导航条制作实例详解
2016/09/17 Javascript
基于jQuery实现的单行公告活动轮播效果
2017/08/23 jQuery
Vue实现按钮旋转和移动位置的实例代码
2018/08/09 Javascript
微信小程序实现炫酷的弹出式菜单特效
2019/01/28 Javascript
vue.js实现备忘录demo
2019/06/26 Javascript
vue3+typeScript穿梭框的实现示例
2020/12/29 Vue.js
深入讲解Python中的迭代器和生成器
2015/10/26 Python
再谈Python中的字符串与字符编码(推荐)
2016/12/14 Python
使用Python实现博客上进行自动翻页
2017/08/23 Python
python爬虫之模拟登陆csdn的实例代码
2018/05/18 Python
windows下 兼容Python2和Python3的解决方法
2018/12/05 Python
Python字符串匹配之6种方法的使用详解
2019/04/08 Python
Python django搭建layui提交表单,表格,图标的实例
2019/11/18 Python
Betsey Johnson官网:妖娆可爱的连衣裙及鞋子、手袋和配件
2016/12/30 全球购物
工程业务员岗位职责
2013/12/31 职场文书
高中生活自我鉴定
2014/01/18 职场文书
目标责任书格式
2014/07/28 职场文书
交通安全横幅标语
2014/10/07 职场文书
孟佩杰观后感
2015/06/17 职场文书
刚学完怎么用Python实现定时任务,转头就跑去撩妹!
2021/06/05 Python
Mybatis-plus在项目中的简单应用
2021/07/01 Java/Android
全面盘点MySQL中的那些重要日志文件
2021/11/27 MySQL