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 相关文章推荐
js trim函数 去空格函数与正则集锦
Nov 20 Javascript
JavaScript 类的定义和引用 JavaScript高级培训 自定义对象
Apr 27 Javascript
JQuery each打印JS对象的方法
Nov 13 Javascript
JavaScript对数组进行随机重排的方法
Jul 22 Javascript
轻松掌握JavaScript策略模式
Aug 25 Javascript
使用bootstraptable插件实现表格记录的查询、分页、排序操作
Aug 06 Javascript
详解Javascript中new()到底做了些什么?
Mar 29 Javascript
JavaScript的Object.defineProperty详解
Jul 09 Javascript
layer.open关闭父窗口 以及调用父页面的方法
Aug 17 Javascript
vue和iview实现Scroll 数据无限滚动功能
Oct 31 Javascript
Vue 技巧之控制父类的 slot
Feb 24 Javascript
Typescript3.9 常用新特性一览(推荐)
May 14 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网页游戏学习之Xnova(ogame)源码解读(十五)
2014/06/30 PHP
php利用ffmpeg提取视频中音频与视频画面的方法详解
2017/06/07 PHP
PHP实现用session来实现记录用户登陆信息
2018/10/15 PHP
Yii 框架使用数据库(databases)的方法示例
2020/05/19 PHP
基于jquery的划词搜索实现(备忘)
2010/09/14 Javascript
js 剪切板应用clipboardData详细解析
2013/12/17 Javascript
Clipboard.js 无需Flash的JavaScript复制粘贴库
2015/10/02 Javascript
jquery实现转盘抽奖功能
2017/01/06 Javascript
Vue.js自定义指令的用法与实例解析
2017/01/18 Javascript
vue2实现移动端上传、预览、压缩图片解决拍照旋转问题
2017/04/13 Javascript
javascript 中iframe高度自适应(同域)实例详解
2017/05/16 Javascript
微信小程序使用wxParse解析html的方法教程
2018/07/06 Javascript
vue服务端渲染缓存应用详解
2018/09/12 Javascript
JavaScript实现网页留言板功能
2020/11/23 Javascript
python GUI实例学习
2017/11/21 Python
python机器学习理论与实战(一)K近邻法
2021/01/28 Python
Python数据分析之获取双色球历史信息的方法示例
2018/02/03 Python
Python检测网络延迟的代码
2018/05/15 Python
Python中垃圾回收和del语句详解
2018/11/15 Python
Face++ API实现手势识别系统设计
2018/11/21 Python
django admin 自定义替换change页面模板的方法
2019/08/23 Python
python对指定字符串逆序的6种方法(小结)
2020/04/02 Python
Python request使用方法及问题总结
2020/04/26 Python
浅谈Python __init__.py的作用
2020/10/28 Python
使用jTopo给Html5 Canva中绘制的元素添加鼠标事件
2014/05/15 HTML / CSS
加大码胸罩、内裤和服装:Just My Size
2019/03/21 全球购物
怎样在程序里获得一个空指针
2015/01/24 面试题
90后毕业生的求职信范文
2013/09/21 职场文书
全国优秀辅导员事迹材料
2014/05/14 职场文书
公司市场专员岗位职责
2014/06/29 职场文书
公司财务会计主管应聘求职信
2014/09/26 职场文书
员工教育培训协议书
2014/09/27 职场文书
北京天坛导游词
2015/02/12 职场文书
五一放假通知怎么写
2015/08/18 职场文书
简单聊聊Vue中的计算属性和属性侦听
2021/10/05 Vue.js
使用MybatisPlus打印sql语句
2022/04/22 SQL Server