(Vue2.x)项目打包 publicPath中 ./和 /的区别

233 阅读1分钟

项目开发完成,部署应用包的时候,会用到publicPath这个字段,默认是 '/'。

前置知识:

  • /为绝对路径
  • ./为相对路径

使用场景

  1. 部署在域名的根路径下,使用.//

    项目如果部署在域名的根路径上,使用这三者方式都可以。

    例如:域名是https: xxx.xxx.cn/, 应用包中的资源路径就会直接到根路径去寻找,而根路径就是在域名下面,所以这个时候是可以找到的。

  2. 部署在域名的子路径下,使用/子路径名称./

    例如:子路径为https: xxx.xxx.cn/download, 使用/download./ 都可以。

./表示相对路径,部署在域名的子路径上面可以找到对应的资源。

相对路径有两个缺陷,下面这两种情况需要避免使用相对路径:

-   当使用基于HTML5`history.pushState`的路由时;
-   当使用`pages`选项构建多页应用时。

推荐使用 /子路径这种方式。

推荐使用/子路径的原因:一般部署到服务器后,一个域名下面会有很多应用,所以一般每个应用会有一个前缀,比如/aaa/,然后nginx配置,指向服务器某个地址。如果用‘./’也可以实现,因为是相对路径,所以静态资源的访问是域名+nginx+打包后的地址,但是对于本地,如果是相对路径,因为启动是localhost:8080,所以首页取静态资源是‘localhost:8080/static’这种,但是具体页面因为router配置了base:'/aaa',所以静态资源是‘’localhost:8080/aaa/static‘’,两个前缀不同,肯定有一个取不到。

原文链接:blog.csdn.net/qq_42440919…