14- 通过打出来的包分析publicPath的' / ' 和 ' ./ '的区别

新起了一个项目,用于做打包和发npm包,最后打出来的包肯定为dist,按理说在dist中的index.html本地打开也能看到页面(静态资源文件)

结果本地打开是个白页。

我们先看一下空白页的时候,通过浏览器的网络中看一下静态资源css,js这些的引入路径是什么样子的:

我们发现加载的这个css路径貌似有问题,怎么是F盘下面css文件夹下的这个css文件呢?肯定不对

我说一下为什么不对,你这个本地打开,要想找到这个css并加载出来,你肯定得有个完整路径,在电脑中加载的这个路径是:

F:\my-npm\drag-split-layout\dist\css

 你怎么能直接去F盘下直接去找css这个文件夹呢?

这就印出来了主角 publicPath了,默认情况下,publicPath的值是 “ / ”,它代表直接挂载到根目录,这里要引入的css的根目录还就是其所在的F盘,没毛病,所以找不到。

那么怎么才能找到正确的引入路径呢?

我们需要在vue.config.js文件中加入:

 让其变成相对路径即可,相对路径的话就可以挂载到任何文件夹下面。

然后我们重新npm run build 进行打包,再在打包出来的dist中再本地运行index.html文件;

这次就能看到页面了,为了验证,我们再次打开浏览器的网络,还去查看这个css的引入路径:

 正如我们前面分析的那样,它在本地找到了正确的文件路径,所以就能正常显示页面了。

当然了,这都是基于路由处在hash模式下,官网也说了,如果在history模式下,需要在nginx上进行配置。

具体可看vue官网对publicPath的介绍

 

posted @ 2021-03-07 20:47  猎奇游渔  阅读(2248)  评论(0编辑  收藏  举报