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 相关文章推荐
Prototype源码浅析 Number部分
Jan 16 Javascript
用JavaScript实现使用鼠标画线的示例代码
Aug 19 Javascript
PHP+jQuery实现随意拖动层并即时保存拖动位置
Apr 30 Javascript
JQuery中属性过滤选择器用法实例分析
May 18 Javascript
jQuery+jsp实现省市县三级联动效果(附源码)
Dec 03 Javascript
javascript 常用验证函数总结
Jun 28 Javascript
利用jquery实现实时更新歌词的方法
Jan 06 Javascript
原生javascript实现读写CSS样式的方法详解
Feb 20 Javascript
在Vue中使用echarts的实例代码(3种图)
Jul 10 Javascript
浅谈super-vuex使用体验
Jun 25 Javascript
微信小程序绘制图片发送朋友圈
Jul 25 Javascript
微信小程序实现轮播图指示器
Jun 25 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
Zend Framework入门教程之Zend_Session会话操作详解
2016/12/08 PHP
PHP后期静态绑定之self::限制实例分析
2018/12/21 PHP
jquery 常用操作整理 基础入门篇
2009/10/14 Javascript
IE浏览器打印的页眉页脚设置解决方法
2009/12/08 Javascript
jquery的ajax()函数传值中文乱码解决方法介绍
2012/11/08 Javascript
用jquery统计子菜单的条数示例代码
2013/10/18 Javascript
NodeJS学习笔记之Connect中间件模块(二)
2015/01/27 NodeJs
JavaScript实现强制重定向至HTTPS页面
2015/06/10 Javascript
基于Three.js插件制作360度全景图
2016/11/29 Javascript
深入理解Angularjs向指令传递数据双向绑定机制
2016/12/31 Javascript
Angularjs 动态添加指令并绑定事件的方法
2017/04/13 Javascript
webpack学习笔记之优化缓存、合并、懒加载
2017/08/24 Javascript
seaJs使用心得之exports与module.exports的区别实例分析
2017/10/13 Javascript
vue项目中用cdn优化的方法
2018/01/03 Javascript
jQuery实现常见的隐藏与展示列表效果示例
2018/06/04 jQuery
JavaScript刷新页面的几种方法总结
2019/03/28 Javascript
WebGL three.js学习笔记之阴影与实现物体的动画效果
2019/04/25 Javascript
在vue-cli中引入lodash.js并使用详解
2019/11/13 Javascript
[02:16]深扒TI7聊天轮盘语音出处2
2017/05/11 DOTA
Python实现比较扑克牌大小程序代码示例
2017/12/06 Python
django模板语法学习之include示例详解
2017/12/17 Python
使用django-crontab实现定时任务的示例
2018/02/26 Python
python中文编码与json中文输出问题详解
2018/08/24 Python
Python Django 命名空间模式的实现
2019/08/09 Python
Python实现投影法分割图像示例(一)
2020/01/17 Python
windows10环境下用anaconda和VScode配置的图文教程
2020/03/30 Python
python3通过qq邮箱发送邮件以及附件
2020/05/20 Python
使用Html5多媒体实现微信语音功能
2019/07/26 HTML / CSS
德国富尔达运动鞋店:43einhalb
2020/12/25 全球购物
上海奥佳笔试题面试题
2016/11/16 面试题
90后毕业生的求职信范文
2013/09/21 职场文书
初三政治教学反思
2014/01/30 职场文书
社会实践活动总结报告
2014/04/29 职场文书
初中政治教学工作总结
2015/08/13 职场文书
SqlServer 垂直分表(减少程序改动)
2021/04/16 SQL Server
Python探索生命起源 matplotlib细胞自动机动画演示
2022/04/21 Python