当前位置: 首页 > 知识库问答 >
问题:

前端 - 如果nginx中配置了location规则,在vue页面中路由跳转的时候会将location的前缀刷掉怎么解决?

薛焱
2023-07-13

如果nginx中配置了location,在vue页面中路由跳转的时候会将location的前缀刷掉怎么处理?
例如在nginx的配置里:

server{
  listen xxxx:xxxx;

  # 这里匹配的规则是 /mydisk/
  location /mydisk/ {
    root /var/www/mydisk/web;
    index index.html;
  }
}

vue项目中,路由的规则:

const routes = [
  {
    path: '/',
    name: 'filelist',
    component: FileListCom,
  },
  {
    path: '/upload',
    name: 'fileupload',
    component: UploadCom
  }
]

菜单:

<el-menu router default-active="/mydisk/" mode="horizontal">
  <el-menu-item index="/">
    A
  </el-menu-item>
  <el-menu-item index="/upload">
    B
  </el-menu-item>
</el-menu>

把项目打包发布后,访问http://xxxx:xxxx/mydisk/,这时候访问的页面是正常的,但是点击菜单A后,地址就变成了http://xxxx:xxxx/(或者点击菜单B后,地址变成http://xxxx:xxxx/upload),这样页面资源就请求不到了
我现在的解决办法是直接在vue路由规则里写死前缀/mydisk/,但是应该有更规范的办法吧,望大家赐教

共有2个答案

谢和颂
2023-07-13

1.修改vue.config.js publicPath 为 /maydistk
2.修改路由

const router = createRouter({history: createwebHistory('/maydistk'),routes}}
  1. 重新打包
傅博容
2023-07-13

在 vue.config.js 中设置 publicPath 选项,将 publicPath 设置为 ‘/mydisk’,然后重新打包

https://blog.csdn.net/qq_27575627/article/details/130215619
 类似资料:
  • 本文向大家介绍详解Nginx location 匹配规则,包括了详解Nginx location 匹配规则的使用技巧和注意事项,需要的朋友参考一下 语法规则 location [=|~|~*|^~] /uri/ { … } 模式 含义 location = /uri = 表示精确匹配,只有完全匹配上才能生效 location ^~ /uri ^~ 开头对URL路径进行前缀匹配,并且在正则之前。 l

  • 本文向大家介绍简介Nginx中的location匹配规则,包括了简介Nginx中的location匹配规则的使用技巧和注意事项,需要的朋友参考一下 location匹配命令 ~      #波浪线表示执行一个正则匹配,区分大小写 ~*    #表示执行一个正则匹配,不区分大小写 ^~    #^~表示普通字符匹配,如果该选项匹配,只匹配该选项,不匹配别的选项,一般用来匹配目录 =      #进行

  • 语法规则 location [=|~|~*|^~] /uri/ { … } 模式 含义 location = /uri = 表示精确匹配,只有完全匹配上才能生效 location ^~ /uri ^~ 开头对URL路径进行前缀匹配,并且在正则之前。 location ~ pattern 开头表示区分大小写的正则匹配 location ~* pattern 开头表示不区分大小写的正则匹配 locat

  • 我期望 以location test1 开始的请求验证后缀为png格式,test2开始的请求不验证格式,怎么配置这个location呢?

  • 只有这一个地方配置了 8001 端口。 打算是通过访问 http://localhost:8001/about/ 打开 html 目录下的 about.html 的,但是返回 403 错误。如果是访问 http://localhost:8001/ 会返回 html 目录下的 index.html 文件 如果注释了这里的配置,那么 http://localhost:8001/ 是无法访问的。也就是配

  • 如果配置是 访问 http://localhost:8002/about/ 会返回 403 禁止 访问 http://localhost:8002/about/ 会返回 html 目录下的 index.html 文件,这是符合预期的 访问 http://localhost:8002/about/ 会不断进行重定向生成 http://localhost:8002/about/index.html/i