解决 Vue 部署在域名子路由 问题

  • 解决 Vue 部署在域名子路由 问题已关闭评论
  • 10 次浏览
  • A+
所属分类:Web前端
摘要

默认情况下,Vue CLI 会假设你的应用是被部署在一个域名的根路径上,例如 https://www.my-app.com/ 。如果应用被部署在一个子路径上,你就需要用这个选项指定这个子路径。例如,如果你的应用被部署在 https://www.my-app.com/my-app/ ,则设置 publicPath 为 /my-app/。
这个值也可以被设置为空字符串 (”) 或是相对路径 (‘./’),这样所有的资源都会被链接为相对路径,这样打出来的包可以被部署在任意路径,也可以用在类似 Cordova hybrid 应用的文件系统中。
[https://cli.vuejs.org/zh/config/#publicpath]


我们先看下官方说明

默认情况下,Vue CLI 会假设你的应用是被部署在一个域名的根路径上,例如 https://www.my-app.com/ 。如果应用被部署在一个子路径上,你就需要用这个选项指定这个子路径。例如,如果你的应用被部署在 https://www.my-app.com/my-app/ ,则设置 publicPath 为 /my-app/。
这个值也可以被设置为空字符串 ('') 或是相对路径 ('./'),这样所有的资源都会被链接为相对路径,这样打出来的包可以被部署在任意路径,也可以用在类似 Cordova hybrid 应用的文件系统中。
[https://cli.vuejs.org/zh/config/#publicpath]

案例

图片中的第二个红框,webapps是域名所在的根目录,部署credit--verify是子目录,所以必须修改publicPath
解决 Vue 部署在域名子路由 问题

代码

module.exports = {   publicPath: process.env.NODE_ENV === 'production'     ? './'     : '/' }