如何修复部署在 github 页面上的 react 应用程序的 404?

Posted

技术标签:

【中文标题】如何修复部署在 github 页面上的 react 应用程序的 404?【英文标题】:How to fix a 404 on react app deployed on github pages? 【发布时间】:2020-12-27 10:45:50 【问题描述】:

我尝试在 github 页面上部署我的 react 应用程序,但收到 404 错误。但是该站点能够访问我的应用程序,因为 404 页面是我的自定义页面。我按照https://github.com/gitname/react-gh-pages 的部署步骤进行操作。github 页面是https://ritsar.github.io/LapStore/,相应的远程存储库是https://github.com/RitSar/LapStore。当我运行 npm run deploy 时,我在终端上没有收到任何错误。我正在尝试将 ritsar.github.io/LapStore 作为我的根,即访问 index.html。从导航栏在网站内导航时,主页被定向到 ritsar.github.io/,其中无法访问图像,并且购物车被定向到 /cart 而不是 /LapStore/cart

package.json


  "homepage": "http://RitSar.github.io/LapStore",
  "name": "e-commerce",
  "version": "0.1.0",
  "private": true,
  "dependencies": 
    "@testing-library/jest-dom": "^4.2.4",
    "@testing-library/react": "^9.5.0",
    "@testing-library/user-event": "^7.2.1",
    "bootstrap": "^4.5.2",
    "jquery": "^3.5.1",
    "react": "^16.13.1",
    "react-dom": "^16.13.1",
    "react-owl-carousel": "^2.3.1",
    "react-router-dom": "^5.2.0",
    "react-scripts": "^3.4.3",
    "serialize-javascript": "^4.0.0",
    "styled-components": "^5.1.1"
  ,
  "scripts": 
    "start": "react-scripts start",
    "build": "react-scripts build",
    "test": "react-scripts test",
    "eject": "react-scripts eject",
    "predeploy": "npm run build",
    "deploy": "gh-pages -d build"
  ,
  "eslintConfig": 
    "extends": "react-app"
  ,
  "browserslist": 
    "production": [
      ">0.2%",
      "not dead",
      "not op_mini all"
    ],
    "development": [
      "last 1 chrome version",
      "last 1 firefox version",
      "last 1 safari version"
    ]
  ,
  "devDependencies": 
    "gh-pages": "^3.1.0"
  

我尝试将 "homepage" 更改为 "http://RitSar.github.io"".""http://RitSar.github.io/LapStore/index.html",对 index.html 进行了细微更改并重新部署,将 github 设置上的分支文件夹更改为 /docs,根据相关人员的要求从 /(root)来自其他线程的建议。 托管在 heroku 上的同一应用程序位于 https://lapstore-ritsar.herokuapp.com/。 (尽管图像大小小于 50kb,但页面加载缓慢是另一个问题,我想知道如何在 github 页面上正确部署它)。

【问题讨论】:

【参考方案1】:

带有路由器<Route exact path="/" component=ProductList></Route> 的主页。使用exact 路径,它在gh-page 上不起作用,您需要再添加1 条路由/LapStore

尝试删除exact路由并添加新路由:

<Route path="/" component=ProductList></Route>
<Route path="/LapStore" component=ProductList></Route>

【讨论】:

以上是关于如何修复部署在 github 页面上的 react 应用程序的 404?的主要内容,如果未能解决你的问题,请参考以下文章

获取 404 以获取将 create-react-app 部署到 github 页面的链接

如何使用 Github 工作流程轻松地将 React 和 Gatsby 部署到 github 页面?

如何创建工作流以将 React & Gatsby 应用程序部署到 Github 页面?

Firebase react.js 应用部署 - 空白页面

将 React 应用程序部署到 github 页面

在 React 中嵌入 GitHub Secret 并部署到 GitHub 页面显示了我的个人访问令牌