解决 Vue 3 应用部署到 GitHub Pages 后,遇到 404 错误问题

在将 Vue 3 应用部署到 GitHub Pages 后,遇到 404 错误通常是由于 GitHub Pages 处理路由时的问题。Vue 3 使用 Vue Router 来管理前端路由,而 GitHub Pages 本身是静态托管服务,不支持处理 SPA(单页面应用)的客户端路由。因此,当你直接访问某个页面 URL(比如 https://yourusername.github.io/your-repo/some-page)时,GitHub Pages 会尝试查找一个实际的文件或目录,而不是通过 Vue Router 渲染该页面,导致 404 错误。
为了解决这个问题,你可以按照以下步骤操作:
1. 设置 base 路径
在 Vue 项目中,设置 base 路径是解决 GitHub Pages 路由问题的关键。你需要在 vue.config.js 中配置 publicPath,指向你项目的 GitHub Pages 路径。
在根目录下创建或修改 vue.config.js 文件,添加以下内容:

module.exports = {
  publicPath: process.env.NODE_ENV === 'production'
    ? '/your-repo-name/'  // 这里替换成你的仓库名称
    : '/',
}

注意
/your-repo-name/ 是你项目的 GitHub 仓库名。例如,如果你的 GitHub 仓库是 my-project,那么路径应该是 /my-project/
在开发环境中,publicPath 会保持为 /,以便本地开发时使用。
2. 配置 Vue Router 的 history 模式
如果你在 Vue 中使用 Vue Router,并且选择了 history 模式,你还需要做一些调整。history 模式会使用 HTML5 的 History API 来管理路由,但它依赖服务器的支持来处理刷新和跳转到页面时的 URL。GitHub Pages 不支持这种处理,所以你需要将 Vue Router 切换回 hash 模式,避免 URL 中出现 history 模式下的路径。
router/index.js 中配置 Vue Router:

const router = createRouter({
  history: createWebHashHistory(),  // 使用 hash 模式
  routes: [
    // 你的路由配置
  ],
})

这样,在 GitHub Pages 上部署后,所有的路由都会带上 #(例如:https://yourusername.github.io/your-repo/#/some-page),这能避免 404 错误。
3. 构建并部署
最后,构建项目并将构建结果部署到 GitHub Pages。可以通过以下命令生成生产构建:

npm run build

然后将 dist 文件夹中的内容推送到 GitHub 仓库的 gh-pages 分支或相应的分支,以使 GitHub Pages 服务于这些构建文件。

例如,你可以使用 gh-pages npm 包来自动化此过程:

npm install gh-pages --save-dev

然后在 package.json 中配置部署命令:

"scripts": {
  "deploy": "npm run build && gh-pages -d dist"
}

运行部署命令:

npm run deploy

这样,Vue 3 应用就可以正确部署到 GitHub Pages 上,并且不会再遇到 404 错误。
总结
vue.config.js 中设置 publicPath/your-repo-name/
在 Vue Router 中使用 hash 模式来避免 history 模式的路由问题。
通过 gh-pages 部署到 GitHub Pages。
这些步骤应该能解决你的问题,让 Vue 3 应用在 GitHub Pages 上顺利运行。

发布者:myrgd,转载请注明出处:https://www.object-c.cn/4957

Like (0)
Previous 2024年11月29日 下午3:37
Next 2024年11月29日 下午3:50

相关推荐

  • 开源免费的AI智能文字识别产品(OCR识别)

    以下是一些免费和开源的 AI 智能文字识别(OCR)和文档处理工具,可以满足通用文档解析、OCR 识别、格式转换、篡改检测以及证件识别等需求: 1. OCR 识别工具 Tesseract OCR PaddleOCR 2. 文档格式转换工具 Apache PDFBox LibreOffice 3. 篡改检测工具 DocGuard 4. 证件识别工具 EasyO…

    2024年11月26日
    00
  • 在 Neo4j 中存储 Liquidity Structure(的层次和关联结构)

    在 Neo4j 中存储 Liquidity Structure(流动性结构)的层次和关联结构时,可以使用其图数据库的特性:节点(Node)表示实体,关系(Relationship)表示这些实体之间的连接。流动性结构通常涉及多层次的实体(如母公司、子公司、账户、资金池等)及其关联关系。 以下是具体实现步骤: 1. 设计数据模型节点类型:实体层次(Hierarc…

    2024年12月2日
    00
  • 在 Ant Design ProTable 中,如何设置不分页,依然显示分页信息,前端分页不触发

    在 Ant Design ProTable 中,默认情况下,分页是与数据请求(request)相关联的。也就是说,每当分页切换时,request 会被触发,重新请求新的数据。如果你希望在禁用分页的同时,依然显示分页控件,并且不触发 request 请求,可以通过以下方法进行配置。解决方案要在 Ant Design ProTable 中禁用分页的同时保留分页信…

    2024年11月29日
    00
  • 开源AI大模型工作神器Flowise本地部署与远程访问教程

    Flowise 是一个开源的 AI 大模型工具,允许你轻松地构建、训练和部署 AI 模型,尤其适用于大语言模型(LLM)的处理。它提供了图形化界面来管理模型和处理流,用户可以通过简单的操作构建和部署模型。 如果你想要在本地部署 Flowise 并实现远程访问,可以按照以下步骤进行操作。 1. 环境准备 首先确保你的系统具备以下条件: 安装 Docker 在 …

    2024年11月24日
    00
  • 在 VSCode 中安装和配置 C/C++ 开发环境及调试功能

    在 VSCode 中安装和配置 C/C++ 开发环境及调试功能,涉及几个关键步骤:安装 VSCode、安装 C/C++ 编译器、安装 C/C++ 扩展、配置调试环境等。下面是一个详细的保姆级教程,带你一步步完成配置。1. 安装 VSCode首先,你需要安装 Visual Studio Code(简称 VSCode)。可以通过以下步骤完成安装:访问 Visua…

    2024年11月29日
    00
  • 使用 HBuilderX 开发 uni-app 项目通过以下步骤实现微信小程序中获取用户头像、昵称、授权登录以及用户手机号

    在使用 HBuilderX 开发 uni-app 项目时,可以通过以下步骤实现微信小程序中获取用户头像、昵称、授权登录以及用户手机号。 1. 配置微信小程序的权限 在微信小程序后台中,确保已经启用了相关的功能模块,如: 同时在 app.json 中配置授权弹窗的提示: 2. 授权获取用户头像、昵称 从微信小程序 2.10.4 版本开始,推荐使用 wx.get…

    2024年12月11日
    00
  • 把一个矩形div变成一个直角三角形

    要将一个矩形 div 变成一个直角三角形,可以通过 CSS 的一些属性进行实现。具体的方法是利用 border 属性来隐藏矩形的部分,留下一个直角三角形的形状。以下是实现的步骤:CSS 方法: 解释:width 和 height 设置为 0:通过将 div 的宽度和高度设置为 0,实际上把矩形的主体部分隐藏了。border-left 和 border-bot…

    2024年11月27日
    00
  • 实现“鼠标点击器外挂”,模拟快速点击或者自动化点击的工具

    实现一个“鼠标点击器外挂”,通常是指模拟快速点击或者自动化点击的工具。以下是一个实现的基本思路和代码示例,适合用于演示或学习目的。 功能描述自动模拟鼠标点击(单击或双击)。用户可以设置点击间隔和总点击次数。提供启动和停止按钮,方便控制。 示例实现HTML CSS (style.css) JavaScript (script.js) 功能实现说明用户输入:用户…

    2024年11月30日
    00
  • PHM技术:一维信号时序全特征分析(统计域/频域/时域)信号处理

    PHM(Prognostics and Health Management,预测与健康管理)技术中的一维信号时序特征分析,旨在从信号中提取与设备健康状态相关的多种特征。以下是针对统计域、频域和时域特征分析的详细介绍和常见方法。 1. 时域特征分析时域特征直接从原始信号提取,描述信号的统计特性或时间行为。这些特征反映信号的幅值、变化趋势和波形形状。1.1 常用…

    2024年11月28日
    00
  • 在 Spring Boot 中实现定时任务,通过 Spring Task Scheduling 来完成

    在 Spring Boot 中实现定时任务,可以通过 Spring Task Scheduling 来轻松完成。Spring 提供了多种方法来调度任务,其中使用 @Scheduled 注解是最常见且简单的方式。 步骤:在 Spring Boot 中实现定时任务 1. 启用定时任务 首先,确保在 Spring Boot 应用的主类或配置类中启用定时任务功能: …

    2024年11月26日
    00
  • 基于 Spring Boot 框架实现微信支付接口调用及回调功能

    实现微信支付接口调用及回调功能,以下是完整的步骤及代码实现,基于 Spring Boot 框架。 1. 微信支付开发准备 开通微信支付 配置 API 安全密钥 前往商户平台的【账户设置】-【API安全】中配置 API 密钥。 2. 集成依赖 在 Spring Boot 项目中添加 HTTP 客户端依赖,例如 RestTemplate 或 OkHttp。也可用…

    2024年11月23日
    00
  • 修复 Elementor 网站上出现的 HTTPS 400 错误请求(服务器错误)

    在修复 Elementor 网站上出现的 HTTPS 400 错误请求(服务器错误)时,您需要采取以下步骤来排查和解决问题。这类错误通常与服务器配置、插件冲突或 HTTPS 配置相关。 1. 检查 HTTPS 配置 2. 排查插件冲突 3. 检查主题兼容性 4. 调整服务器配置 URL 重写规则: 5. 清理缓存 6. 检查网络请求 7. 联系主机服务商 如…

    2024年12月9日
    00
  • 解决 WordPress 后台无法登录的常见问题

    WordPress 后台无法登录是一个常见问题,可能由多种原因引起,包括插件冲突、主题问题、数据库错误或用户账户问题。以下是详细的排查和解决步骤: 1. 检查登录页面 URL 确保您访问的是正确的 WordPress 登录页面: 2. 清除浏览器缓存和Cookie 3. 重置密码 用新密码尝试登录。 4. 禁用插件 某些插件可能会导致登录问题。尝试通过以下方…

    2024年12月9日
    00
  • 云服务器的 宝塔面板 中配置 PHP 支持 WebP 格式的图片

    在云服务器的 宝塔面板 中配置 PHP 支持 WebP 格式的图片,主要是通过安装或启用 GD 库或者 ImageMagick 来实现 WebP 图片的处理支持。下面是一步步的操作方法:1. 确保服务器已经安装 WebP 扩展WebP 格式的支持需要 PHP 依赖于 GD 库或 ImageMagick 库。如果你使用的是 PHP 7.0 及以上版本,通常 G…

    2024年11月29日
    00
  • 理解 HTML、HTML5 和 “H5” 区别的重要性

    HTML & HTML5 & H5 的区别在构建现代网页时,理解 HTML、HTML5 和 “H5” 的区别是非常重要的。以下是它们的概念和主要区别: 1. HTML(超文本标记语言)定义HTML 是 HyperText Markup Language 的缩写,即超文本标记语言,用于定义网页内容的结构和含义。特性提供基…

    2024年12月2日
    00

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

联系我们

在线咨询: QQ交谈

邮件:723923060@qq.com

关注微信