【记录★解决】nginx配置反向代理访问nuxt指定页面,但是总是跳转到首页。

123 阅读1分钟

前言:

天啊,BUG没改完,又来需求了。

"访问b.com 返回a.com/xxx.html 页面内容“ 就这,不分分钟解决的事情。

a.com路由表
//router.js
const { resolve } = require('path')
const router =[
  {
    name:'xxx',
    path:'/xxx.html',
    component:resolve('./','pages/user/index'),
  },
  {
    name:'home',
    path:'/',
    component:resolve('./','pages/home/index')
  }]

吭哧打开xshell,熟练连上服务器 ,编辑nginx.config增加如下配置

location  ~ \.(css|js|png|jpg|woff)$  {
        proxy_pass  http://a.com
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
        proxy_redirect off;
    }
location = / {
    proxy_pass http://a.com/xxx.html;
    proxy_http_version 1.1;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection 'upgrade';
    proxy_set_header Host $host;
    proxy_cache_bypass $http_upgrade;  
}

保存~重启,你看这不就完成了。

访问b.com域名进行测试,眉头一紧。

1706539761375 -original-original.gif

咦?咋这样,怎么又跳转了一次,怎么跳转到首页了?

果然越简单的事越复杂:

思考一番,突然灵机一动。 b.com 返回的是xxx.html页面,看页面源码没错,第一次正确显示是xxx.html image.png 哈哈哈原因找到就好解决,由于在浏览器加载vue资源时,vue路由中/ 对应home页面,就加载了/home组件。

let router = app.router

router.beforeEach((to, from, next) => {
  if (!process.server) {
    router.options.routes[0].path = '/'
    router.options.routes[2].path = '/home'
 
    router.matcher = new router.constructor({mode: router.mode, routes: router.options.routes}).matcher;
    

  }
  next()


})

完结撒花