前言:
天啊,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域名进行测试,眉头一紧。
咦?咋这样,怎么又跳转了一次,怎么跳转到首页了?
果然越简单的事越复杂:
思考一番,突然灵机一动。 b.com 返回的是xxx.html页面,看页面源码没错,第一次正确显示是xxx.html
哈哈哈原因找到就好解决,由于在浏览器加载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()
})
完结撒花