我有一个React应用程序(带有vite和typescript),在使用npm run dev时运行良好。主页也可以在github页面上正确显示。
但似乎只要我试图重定向到产品页面或联系页面,它就给了我一个404。我是React的初学者,这真的让我感到困惑(特别是因为它在运行开发模式下工作得很好)。
App.tsx
import { BrowserRouter, Route, Routes } from "react-router-dom";
return (
<div>
<Header />
<Cart cartItems={cartItems} setCartItems={setCartItems} />
<Routes>
<Route path="/shopping-cart" element={<Main />} />
<Route
path="shopping-cart/products"
element={<Products setCartItems={setCartItems} />}
/>
<Route path="shopping-cart/contact" element={<Contact />} />
</Routes>
<Footer />
</div>
);
}
main.tsx:
import { BrowserRouter } from "react-router-dom";
ReactDOM.createRoot(document.getElementById("root") as HTMLElement).render(
<React.StrictMode>
<BrowserRouter>
<App />
</BrowserRouter>
</React.StrictMode>
);
vite配置:
import { defineConfig } from 'vite'
import react from '@vitejs/plugin-react'
// https://vitejs.dev/config/
export default defineConfig({
base: '/shopping-cart/',
plugins: [react()],
})
(Full代码https://github.com/Fibox-coder/shopping-cart)
我尝试了很多东西,比如使用Switch而不是Routes,使用HashRouter而不是BrowserRouter,但似乎都不起作用。
我在Github页面上点击导航栏时有3个URL:
**作品:**首页= https://fibox-coder.github.io/shopping-cart/
**404文件未找到:**产品= https://fibox-coder.github.io/shopping-cart/products/联系人= https://fibox-coder.github.io/shopping-cart/contact
1条答案
按热度按时间bqucvtff1#
React App必须为生产构建,所以你应该使用www.example.com教程中的Github Actionvitejs.dev。这是我的方式,对我来说很好。
vite.config.js中的Config帮助自动设置基本路径:
您应该使用.github/workflows/gh-page.yml创建Github Action,用于自动化更新“gh-pages”分支:
进入设置-〉页面-〉将分支更改为“gh-pages”,与上面的BRANCH相同,只有在您将代码推送到Github后才能工作(Github Action创建“gh-pages”,并在Github Action运行大约1分钟后工作)
更多信息:https://vitejs.dev/guide/static-deploy.html#github-pages