没有域名,一个服务器Nginx怎么部署多个前端项目

news/2024/7/7 19:30:34

因为没有域名,所以用路径来作区分,

  • 主项目:直接根路由访问该项目,与正常配置无任何差别
  • 从项目:此处设置/new路径,为从项目,所有从项目访问路径均要加上/new

①修改Nginx配置文件

Nginx 配置文件如上所示

server {

        listen       80;
        server_name  localhost;
        location / {
            root   html/;
            index  index.html index.htm;
            try_files $uri $uri/ /index.html;
        }
        location /new {
            alias html/new/;
            index index.html index.htm;
            try_files $uri $uri/ /new/index.html;
        }
}

②修改从项目

主要就是在项目中增加一个baseUrl,就是你自定义的路径,我这里是new

  • vue.config.js

增加  publicPath: '/new/'

module.exports = {
  lintOnSave: false, // 关闭eslint
  publicPath: '/new/',
  devServer: {
    port: 80, //  端口号的配置
    open: true, // 自动打开浏览器
    proxy: {
      '/api': {
        target: 'http://127.0.0.1:8080/',
        changeOrigin: true,
        pathRewrite: {
          '^/api': '/'
        }
      },
    },
  }
}
  •  index.html

增加  <meta base=/new/>

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="utf-8">
    <meta base=/new/>
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width,initial-scale=1.0">
    <link rel="icon" href="<%= BASE_URL %>favicon.ico">
  </head>
  • router/index.js 

增加  base: '/new/' 

const router = new VueRouter({
  base: '/new/',
  routes: globalRoutes
})

================================

还有一点!!!!!!!

在从项目中,上述地方均改了以后,对于静态文件,使用url请求的,也要手动增加/new路径,要不然打开项目以后会   找不到资源。

例如我这里请求前端的地图资源数据,我是用前端地址+位置访问的,如果此处不改,上线后就会找不到静态资源

其实还有个办法,就是上线以后,哪个资源找不到,就回去改哪个,毕竟项目大可能也改不全,比如上线了,网站背景图没刷出来,F12查看,找不到,对一下路径发现错了,回去改即可

if (!this.mapData[arg.name]) {
    const ret = await axios.get('http://99.199.199.99:80' + '/new/static/map/country/' + arg.name + '.json')
    this.mapData[arg.name] = ret.data
    this.$echarts.registerMap(arg.name, ret.data)
}

改了配置文件,和前端代码,docker重启Nginx,就能正常访问了,记得两个前端项目都用同一个接口哈


http://lihuaxi.xjx100.cn/news/1149871.html

相关文章

ros的入门知识

ros的入门教程链接: linux ros安装学前小案例-键盘控制小海龟的移动创建工作空间与功能包发布者publisher订阅者subscriber ros的基础知识点 不同的linux系统安装的ros版本是不一样的&#xff0c;linux18.04安装melodic&#xff0c;linux20.04安装noetic。 roscore:所有节点…

opencv 裁剪超大 tif 图像制作深度学习数据集

文章目录 1. 尝试暴力裁剪&#xff08;24 位&#xff09;2. 带透明度读取 &#xff08;32 位&#xff09;3. 裁剪标签&#xff08;8 位&#xff09; 本文只是进行了简单的尝试&#xff0c;未单独处理最右侧、最下侧和右下角区域&#xff0c;且未设置重叠率 若使用 gdal 进行 ti…

Oracle 21c部署 in Docker

目录 # 热分配新硬盘 # 拉取镜像 # 启动数据库 访问Oracle数据库 本环境的用途为开发测试环境&#xff1b;所以&#xff0c;分配给Oracle的资源相对较低&#xff1b;如果在生产环境下&#xff0c;请提前规范分配的CPU、内存、IO、磁盘&#xff08;本地磁盘 or 网络存储、磁…

基于单片机的电梯控制系统研究内容及设计步骤

本课题的主要任务就是完成一个电梯系统的调度模块 ,即根据每个楼层不同 顾客的按键需求 ,让电梯做出合理的判断 ,正确高效地知道电梯完成各项载客任 务。根据此任务,本课题需要研究的内容有: 1、根据系统的技术要求,进行系统硬件的总体方案设计; 2、学习单片机的相关知识,并且加…

0601-指针的基础

内存 物理存储器和存储地址空间 物理存储器&#xff1a;实际存在的具体存储器芯片。比如&#xff1a;内存条、RAM芯片、ROM芯片。 存储地址空间&#xff1a;对存储器编码的范围。 编码&#xff1a;对每个物理存储单元&#xff08;一个字节&#xff09;分配一个号码寻址&…

计算卸载-论文05-双层优化(无线充电与卸载)

标题&#xff1a;《A Divide-and-Conquer Bilevel Optimization Algorithm for Jointly Pricing Computing Resources and Energy in Wireless Powered MEC》 期刊&#xff1a;IEEE TRANSACTIONS ON CYBERNETICS&#xff0c;2022 一、理论梳理 问题&#xff1a;相比于移动云…

类与对象(中)(一)

1.类的6个默认成员函数 如果一个类中什么成员都没有&#xff0c;简称为空类。 空类中真的什么都没有吗&#xff1f;并不是&#xff0c;任何类在什么都不写时&#xff0c;编译器会自动生成以下6个默认成员 函数。 默认成员函数&#xff1a;用户没有显式实现&#xff0c;编译器…

【Win32】资源文件(对话框),逆向对话框回调函数,消息断点(附带恶意软件源码)

之前在学习windows编程的时候已经写过对话框的创建了&#xff0c;其中包括了对话框的分类&#xff0c;原理等等&#xff0c;大家可以去看一下&#xff1a;【windows编程之对话框】对话框原理&#xff0c;对话框的创建。原理今天就讲的不是很多了&#xff0c;直接给大家给出步骤…