September 29, 2023
By: 王朝阳

前端项目配置域名二级目录访问(vue2、vue3、cljs)

一、背景需求

我们开发中会遇到这样的需求,让我们用服务器nginx部署一个用域名的二级目录来访问项目、下面将讲述使用vue2+webpack 和 vue3+vite及cljs 配置二级目录访问(cljs配置比较麻烦,耐心看)

https://xxx/二级目录/来放访问项目

二、实现思路

步骤1:将spa项目的路由改成history模式访问

步骤2:将项目中的访问路由和静态资源文件,都加上要配置的二级目录名称名称

步骤3:配置nginx的二级目录访问项目就ok了

三、实现步骤1(配置项目history二级目录访问路由及资源)

3.1 vue2+webpack的配置

(1)vue.config.js配置

module.exports = {
  publicPath: "/wang/"
}

(2)router配置

const router = new VueRouter({
  mode: "history",
  base: process.env.BASE_URL, // 这个就是上面的publicPath
  routes,
});

3.2vue3+vite的配置

(1)vite.config.js配置

export default defineConfig({
  base: "/wang/"
})

(2)router配置

const router = createRouter({
  // 指定路由的模式,此处使用的是history模式
  history: createWebHistory("/wang/"),
  // 路由地址
  routes
});

3.3cljs项目的配置

(1)配置项目使用history路由模式

image-20230929203240256

(2)配置项目二级路由访问

image-20230929204003174

(3)修改项目跳转采用二级路由

备注

项目里采用了两种路由跳转方式,一种是:navigate-to 这中就不用管、一种是href跳转链接方式(这个必须改)

实现步骤1

全局搜索a标签的属性的href来手动增加二级目录**(注意别把link的href修改了!!!!)**

image-20230929204623509

实现步骤2(看情况斟酌是否需要修改)

因为项目里面路由表的信息,还存有一部分在数据库,所以也需要修改,手动增加二级目录

image-20230929205008936

(3)配置项目二级目录资源

实现步骤1

修改项目index.html页面的资源引用(采用相对路径引用,去除src及href链接开头的"/"字符)

image-20230929205427342

实现步骤2

全局搜索:href 全局修改link标签的href路径(去掉链接前的"/")

image-20230929205921791

实现步骤3

全局搜索:src (修改img标签的src静态资源引用路径)

image-20230929210104214

四、实现步骤2

当然是打包了铁铁

五、配置nginx的server conf中的匹配规则(所有前端spa项目都是这个步骤)

server {
   	listen 8083;     #1.监听访问端口
     server_name 106.13.0.11;     #2.当前服务器ip或者域名或者localhost
     # 这里要写成末尾不带"/"的形式,如果写成"/wang/"单单访问106.13.0.11:8083/wang会404
     location /wang { 
        alias   /usr/web/qfqz/dist/;     # 这里配置alias(配置root的话,必须了解访问规则),用来指定项目目录位置
        index index.html index.htm;
        try_files $uri $uri/ /wang/index.html;     # 这里在/index.html的基础上,前面需要加上/wang(否则刷新404)
        gzip_static on;
     }
 }

六、nginx扩展知识

6.1nginx中alias及root规则的扩展知识

Nginx 配置中root和alias的区别分析

6.2关于nginx配置解决页面刷新以后404 Not Found和403 Forbidden

nginx 配置

Tags: 前端