用nginx在同一服务器端口下部署多个项目,第二个项目打开后页面空白?

发布于 2022-09-12 03:54:46 字数 1686 浏览 34 评论 0

1.问题概括:

按照这篇文章的做法,用nginx在在服务器同一端口下部署多个项目,结果发现,第一个项目正常运行,第二个项目打开后页面空白。

2.服务器上项目文件夹的结构:
/home 路径下有两个如下的项目文件夹:

MiniProgram-Admin
    |--client
        |--static
        |--index.html
    |--server
Vue-mall

其中,MiniProgram-Admin是第二个项目,client是前端项目文件夹(static文件夹下是引用的css和js),server是后端项目文件夹

3.项目文件配置:

项目的路由配置:

const createRouter \= () \=> new Router({

 mode: 'history', // require service support

 base: process.env.NODE\_ENV \=== 'production' ? '/MiniProgram-Admin/client/index/' : '/index/',

 scrollBehavior: () \=> ({ y: 0 }),

 routes: constantRoutes

})

项目的 vue.config.js 文件配置

 publicPath: process.env.NODE\_ENV \=== 'production' ? '/MiniProgram-Admin/client/' : '/',
4.nginx 文件的配置:
upstream koa.server {
  server localhost:3000;
}

server {
  listen 80;
  location / {
    root  /home/vue-mall/;
    index index.html index.htm;
    try_files $uri $uri/ @router;
  }
  location /admin {
    alias /home/MiniProgram-Admin/client;
    index index.html index.htm;
    try_files $uri $uri/ /MiniProgram-Admin/client/index.html;
  }
  location @router {
    rewrite ^.*$ /index.html last;
  }
} 
5. 问题:

访问第一个项目(vue-mall),正常;访问第二个项目(
MiniProgram-Admin),页面空白,html结构如下:

00.png

并且有一定的机率出现这个报错(之前尝试的时候没有出现过)

11.png

不知道是哪里配置错了?而且这个报错也很迷,有时候不出现,但是不管报不报错,页面都是空白的。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

去了角落 2022-09-19 03:54:46

获取你可以参考我的文章,当然这也是我自己练习Vue部署的。
这是我Vue项目 https://www.charmcode.cn/app/... 使用的路由前缀为/app/mall
我博客项目占用了根路径 https://www.charmcode.cn

我自己写了一篇文章 通过不通路由路径,部署多个Vue项目
https://www.charmcode.cn/article/2020-06-30_nginx_vue

献世佛 2022-09-19 03:54:46

看你的报错就是资源返回的是 html。

然后你的路由规则拦截的是 //admin

但是你js资源请求的地址是 /MiniProgram-Admin

流绪微梦 2022-09-19 03:54:46

基本上,看到 unexpected token '<' 就可以确定是 404 之后返回了标准 404 HTML 页,于是浏览器按照 js 或者 css 语法解析的时候就出错了,出错的原因是第一个字符也就是 < 认不出。

看起来首页能打开,说明根目录配置没问题,那么接下来就调整资源引用的相对路径就可以了。

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文