vue3路由使用createWebHistory部署访问404问题 vite部署访问404问题

news2024/9/24 9:22:47

vue3路由使用createWebHistory部署访问404问题 vite部署访问404问题

  • 开始
    • createWebHistory() H5路由模式
    • 修改vite.config.js
    • 修改 router/index.js 路由模式
    • 修改Nginx
      • 配置1
      • 配置2
      • 配置3
    • createWebHashHistory() 哈希模式
    • 修改vite.config.js
    • 修改 router/index.js 路由模式
      • Nginx配置 域名非80端口访问
      • Nginx配置 域名非80端口带子路径访问
      • Nginx配置 域名非80端口带子路径访问

开始

createWebHistory() 这个模式部署Nginx,在部署有遇到很多问题,同样的配置在 不同的vite版本和不同的Nginx版本下有可能会失效,需要多加调整,建议如果不是很在意url样式 可以使用 createWebHashHistory() 模式,这个模式不需要额外对部署的服务器进行配置,所以相对来说简单

Nginx版本是 1.24.0
Vite版本是 5.3.2

createWebHistory() H5路由模式

默认情况下,vite 会假设你的应用是被部署在一个域名的根路径上

例如 http://www.liyangme.top.com/。如果应用被部署在一个子路径上,你就需要用这个选项指定这个子路径。
例如,应用被部署在 http://www.liyangme.top.com/demo/,则 base需要配置 为 /demo/

这个问题只有 路由模式为 createWebHistory(H5模式)才会出现,如果使用的是 # 这样的路由则不会出现

修改vite.config.js

修改 base/demo/, 具体根据你的应用名称来
在这里插入图片描述

修改 router/index.js 路由模式

修改createWebHistory中的路径,与 vite.config 中的 base路径一致
如果部署访问 500或者404,将 createWebHistory中的路径去掉,重新打包测试

const router = createRouter({
	history: createWebHistory('/demo/'),
	routes: constantRoutes,
	scrollBehavior(to, from, savedPosition) {
		if (savedPosition) {
			return savedPosition;
		} else {
			return { top: 0 };
		}
	},
});

export default router;

修改Nginx

配置1

    server {
        listen 9999;
        server_name localhost;

		add_header 'Access-Control-Allow-Origin' '*';
      	add_header 'Access-Control-Allow-Credentials' 'true';
      	add_header 'Access-Control-Allow-Methods' '*';
      	
        error_page 404 /404.html;
        error_page 500 502 503 504 /50x.html;

        location /demo{
        	# windows方式
            # alias "E:\\apps\\nginx-1.24.0\\nginx-1.24.0\\html\\demo";
            
            # Linux方式
            alias "/apps/nginx-1.24.0/nginx-1.24.0/html/demo";
            
            # Linux方式 二
            # alias /apps/nginx-1.24.0/nginx-1.24.0/html/demo;
            
            # 解决刷新404问题
            try_files $uri $uri/ /demo/index.html;
        }
    }

配置2

    server {
        listen 9999;
        server_name localhost;
        
        add_header 'Access-Control-Allow-Origin' '*';
        add_header 'Access-Control-Allow-Credentials' 'true';
        add_header 'Access-Control-Allow-Methods' '*';
        
        error_page 404 /404.html;
        error_page 500 502 503 504 /50x.html;

        location /demo/ {
            alias "/apps/nginx-1.24.0/nginx-1.24.0/html/demo";
            # 解决刷新404问题
            try_files $uri $uri/ /index.html;
        }
    }

配置3

    server {
        listen 9999;
        server_name localhost;
        error_page 404 /404.html;
        error_page 500 502 503 504 /50x.html;

		root /apps/nginx-1.24.0/nginx-1.24.0/html;
      	index index.html;

	   	location /demo {
	         try_files $uri $uri/ /index.html =404;
	    }
    }

createWebHashHistory() 哈希模式

修改vite.config.js

修改 base./
在这里插入图片描述

修改 router/index.js 路由模式

修改路由模式为 createWebHashHistory()

const router = createRouter({
	history: createWebHashHistory(),
	routes: constantRoutes,
	scrollBehavior(to, from, savedPosition) {
		if (savedPosition) {
			return savedPosition;
		} else {
			return { top: 0 };
		}
	},
});

在这里插入图片描述

打包之后直接将demo文件夹放在 Nginx/html目录下,直接就可以访问了,例如 http://localhost/demo, nginx会自己解析子路径,不需要配置Nginx

Nginx配置 域名非80端口访问

server {
      listen 9999;
      server_name localhost;

      add_header 'Access-Control-Allow-Origin' '*';
      add_header 'Access-Control-Allow-Credentials' 'true';
      add_header 'Access-Control-Allow-Methods' '*';

      error_page 404 /404.html;
      error_page 500 502 503 504 /50x.html;

      root /apps/nginx-1.24.0/nginx-1.24.0/html/demo;
      index index.html;

      location / {
         try_files $uri $uri/ /index.html =404;
      }
   }

Nginx配置 域名非80端口带子路径访问

server {
      listen 9999;
      server_name localhost;

      add_header 'Access-Control-Allow-Origin' '*';
      add_header 'Access-Control-Allow-Credentials' 'true';
      add_header 'Access-Control-Allow-Methods' '*';

      error_page 404 /404.html;
      error_page 500 502 503 504 /50x.html;

      location /demo {
         root /apps/nginx-1.24.0/nginx-1.24.0/html/demo;
      	 index index.html;
         try_files $uri $uri/ /index.html =404;
      }
   }

Nginx配置 域名非80端口带子路径访问

server {
      listen 9999;
      server_name localhost;

      add_header 'Access-Control-Allow-Origin' '*';
      add_header 'Access-Control-Allow-Credentials' 'true';
      add_header 'Access-Control-Allow-Methods' '*';

      error_page 404 /404.html;
      error_page 500 502 503 504 /50x.html;

      location /demo {
         root /apps/nginx-1.24.0/nginx-1.24.0/html;
      	 index index.html;
         try_files $uri $uri/ /index.html =404;
      }
   }

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2071121.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

文件IO和多路复用IO

目录 前言 一、文件 I/O 1.基本文件 I/O 操作 1.1打开文件 1.2读取文件内容 (read) 1.3写入文件 (write) 1.4关闭文件 (close) 2.文件指针 二、多路复用 I/O 1.常用的多路复用 I/O 模型 1.1select 1.2poll 1.3epoll 2.使用 select、poll 和 epoll 进行简单的 I/O…

基于vue框架的北城招聘管理平台题目7lly3(程序+源码+数据库+调试部署+开发环境)系统界面在最后面。

系统程序文件列表 项目功能:用户,企业,企业信息,职位类型,职位信息,简历信息,职位应聘,求职意愿,面试信息,录取信息,实习信息,冻结信息,解冻信息 开题报告内容 基于Vue框架的北城招聘管理平台 开题报告 一、引言 随着互联网的飞速发展和企业对人才需求的不断增…

无人机之如何利用无人机进行地形测绘

一、无人机的选择 多旋翼无人机:多旋翼无人机具有较好的稳定性和悬停能力,适用于复杂地形和需要高精度影像测绘任务。 固定翼无人机:固定翼无人机飞行速度快,续航能力强,更适合大面积的地形测绘工作。 消费级无人机…

python怎么删除模块

1、用命令行删除 安装pip $ wget https://bootstrap.pypa.io/get-pip.py $ python get-pip.py 删除指定的模块或者包: pip uninstall xxx 2、手动删除 去Python的第三方模块或包的存放位置进行手工删除文件和文件夹,然后删除easy-install.pth文件中的相…

Canvas实现电子签名功能

实现代码如下&#xff1a; <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>Canvas实现手写板</t…

开发指南056-定时任务

业务场景中定时任务很常见。平台实现定时任务的原则如下&#xff1a; 1、定时任务的定义在业务库&#xff08;没必要集中到核心库&#xff0c;另外定时任务的服务要访问业务库&#xff09;。 2、定时任务的服务为独立微服务。 平台的定时任务基于&#xff1a; <dependenc…

20240824 每日AI必读资讯

谷歌搜索引擎全面揭秘&#xff01;近百份文档泄露&#xff0c;博主爆肝数周逆向工程 - 继5月的文件泄露事件后&#xff0c;谷歌的搜索引擎又被掀了个底朝天。 - DeepMind发论文解释了Vizier系统的机制&#xff0c;博客作者Mario Fischer还对近百份文档做了彻底的调研分析&…

单位信息宣传考核投稿方法不对让我尝尽了苦头

自从我担任单位的信息宣传员以来,便深刻体会到“信息宣传”四个字背后的重量。每月的信息宣传考核任务就像一座大山,压在我心头。起初,我像大多数同行一样,习惯于通过电子邮件向各大媒体投稿,但这种方式让我尝尽了苦头。 记得开始尝试通过邮箱投稿时,我满怀信心地将精心准备的文…

C语言-内存管

内存区间 全局/静态存储区 不仅仅包含全局变量&#xff0c;还包含静态变量&#xff08;包括在函数内部定义的静态局部变量&#xff09;、字符串常量以及main函数开始执行之前就被初始化的所有其他数据。这些数据的生命周期贯穿整个程序执行期间。 对于一个C语言程序而言&…

SQL-DQL-数据查询语言

数据查询语言 1、基础查询 2、条件查询 3、聚合函数 4、分组查询 5、分页查询 6、案例 7、执行顺序 select 字段列表 from 表名列表 where 条件列表 group by 分组字段列表 having 分组后条件列表 order by 排序字段列表 limit 分页参数1、基础查询 select 字段1[as 别…

OpenCV与AI深度学习 | 基于改进YOLOv8的景区行人检测算法

本文来源公众号“OpenCV与AI深度学习”&#xff0c;仅用于学术分享&#xff0c;侵权删&#xff0c;干货满满。 原文链接&#xff1a;基于改进YOLOv8的景区行人检测算法 作者&#xff1a;贵向泉&#xff0c;刘世清&#xff0c;李立等 来源&#xff1a;《计算机工程》期刊 编…

Linux 命令集合

1. linux 系统版本 1.1 linux系统的分类 linux系统&#xff0c;主要分Debian系和RedHat系&#xff0c;还有其它自由的发布版本。 1、Debian系主要有Debian&#xff0c;Ubuntu&#xff0c;Mint等及其衍生版本&#xff1b; 2、RedHat系主要有RedHat&#xff0c;Fedora&#xf…

AI可预测地震,科技的“预知未来”?

在科幻小说和电影中&#xff0c;预知未来的能力总是让人向往。而在现实世界中&#xff0c;科学家们正利用人工智能&#xff08;AI&#xff09;技术&#xff0c;向着预测自然灾害这一“未来”的目标迈进。 近日&#xff0c;德州大学奥斯汀分校&#xff08;UT Austin&#xff09;…

【C++】C++的模板初识

目录 思维导图大纲&#xff1a; 1. 什么是模板&#xff1f; 2. 模板的分类 区别&#xff1a;函数模版和模版函数 / 类模版和模版类 2.1 函数模板 2.1.1 用法 2.1.2 原理 2.1.3 函数模板的实例化 2.1.4 模板参数的匹配原则 2.2 类模板 2.2.1 用法 2.2.2 原理 …

Linux--gdb的常用命令

目录 前言 一、gdb是什么&#xff1f; 二、常用命令 前言 提示&#xff1a;这里可以添加本文要记录的大概内容&#xff1a; 对于程序有两个版本&#xff0c;一个是debug版和release版&#xff0c;要想进行调试必须使用debug版本&#xff0c;再Linux上进行调试就要用到调试器…

660高数刷题

1 周期函数的周期等于上下限的差值则值相等 2 3 4 5 6 泰勒公式要展开到多少阶

快速幂算法【算法 08】

快速幂算法详解 在计算机编程中&#xff0c;快速幂算法是一种高效计算大整数幂次的算法。相较于直接的暴力计算&#xff0c;快速幂能够在对数级别的时间复杂度下完成运算&#xff0c;因此它在许多算法和问题中&#xff08;如数论、组合数学、密码学等&#xff09;都有广泛的应用…

web常见漏洞之——SSRF

ssrf 概述工具环境实验一 概述 SSRF(Server-Side Request Forgery)叫做服务器请求伪造&#xff0c;因为服务器提供了从其他服务器应用获取数据的功能且没有对目标地址进行过滤和限制导致黑客可以对服务器请求的地址进行伪造。 ssrf漏洞的主要用处就是对服务器进行资源扫描&am…

YOLOv9改进策略【损失函数篇】| Slide Loss,解决简单样本和困难样本之间的不平衡问题

一、本文介绍 本文记录的是改进YOLOv9的损失函数&#xff0c;将其替换成Slide Loss&#xff0c;并详细说明了优化原因&#xff0c;注意事项等。Slide Loss函数可以有效地解决样本不平衡问题&#xff0c;为困难样本赋予更高的权重&#xff0c;使模型在训练过程中更加关注困难样…

【回溯Ⅱ】组合问题

用回溯&#xff08;递归&#xff09;解决组合问题 第一类组合问题77.组合216.组合问题Ⅲ 第二类组合问题39. 组合总和递归法一&#xff1a;组合位置填空递归法二&#xff1a;遍历数组 40. 组合总和 II递归法一&#xff1a;组合位置填空递归法二&#xff1a;遍历数组❌ 常规思路…