React-router-dom:Vite 配置和 gh-pages 上出现错误 404

Rom*_* S. 5 github-pages reactjs react-router-dom vite

在 GitHub 上部署 React 应用程序(使用 gh-pages)后,我遇到了导航问题。该网站采用以下 URL 作为主页: https://1kiritos1.github.io/,

而主页应该是: https://1kiritos1.github.io/youtube-clone/

我需要网站导航依赖于上述 URL,例如https://1kiritos1.github.io/youtube-clone/video/***
或者
https://1kiritos1.github.io/youtube-clone/channel/***

应用程序

import React from 'react';
import { Box } from '@mui/material';
import { HashRouter as Router, Routes, Route } from 'react-router-dom';
import { Navbar, Feed, VideoDetail, ChannelDetail, SearchFeed } from './components';

function App() {
    return (
        <Router>
            <Box>
                <Navbar />
                <Routes>
                    <Route exact path="/" element={<Feed />} />
                    <Route path="/video/:id" element={<VideoDetail />} />
                    <Route path="/channel/:id" element={<ChannelDetail />} />
                    <Route path="/search/:searchTerm" element={<SearchFeed />} />
                </Routes>
            </Box>
        </Router>
    )
}
export default App;
Run Code Online (Sandbox Code Playgroud)

指数

import React from 'react';
import ReactDOM from 'react-dom/client';
import App from './App';
import './style.css';

ReactDOM.createRoot(document.getElementById('root')).render(
    <App />
)
Run Code Online (Sandbox Code Playgroud)

包.json:

"name": "youtube_clone",
  "homepage": "/youtube-clone/#",
  "private": true,
  "version": "0.0.0",
  "type": "module",
Run Code Online (Sandbox Code Playgroud)

Vite.config.js:

import { defineConfig } from "vite";
import react from "@vitejs/plugin-react";

export default defineConfig({
  base: '/youtube-clone/', // Base url of the website
  plugins: [react()]
});
Run Code Online (Sandbox Code Playgroud)

我尝试使用 basename="youtube-clone/",并按照这些解决方案进行更改,但这些都对我没有帮助。该站点在本地服务器上正常运行。也许是 vite 配置的问题,我不知道。(如果您需要任何其他信息,请告诉我,谢谢)

小智 0

使用删除构建文件

rm -rf build
Run Code Online (Sandbox Code Playgroud)

更改文件 package.json 中的以下数据

"homepage": "./",
Run Code Online (Sandbox Code Playgroud)

使用创建新版本

npm run build
Run Code Online (Sandbox Code Playgroud)

更改文件 package.json 中的以下数据

"homepage": "<github url>",
Run Code Online (Sandbox Code Playgroud)