繁体   English   中英

react v6 routing - 刷新(F5)页面返回404页面未找到

[英]react v6 routing - Refresh (F5) page returns 404 page not found

我遇到的问题涉及基本的反应应用程序(v6)。 更具体地说,它与路由有关。 我已经在 stackoverflow 上完成了几个问题/答案,但无法弄清楚出了什么问题。

这就是我正在使用的。

应用程序.js

import "./App.css";
import React from "react";
import { BrowserRouter, Routes, Route } from "react-router-dom";
import NavBar from "./components/NavBar";
import Home from "./pages/Home";
import About from "./pages/About";
import PrivacyPolicy from "./pages/PrivacyPolicy";
import TermsOfService from "./pages/TermsOfService";

const App = () => {

  return (
    <BrowserRouter>         
      <NavBar/>        
      <Routes>
        <Route path="/" element = {<Home/>} />
        <Route path="/home" element={<Home />} />
        <Route path="/about" element={<About />} />
        <Route path="/privacyPolicy" element={<PrivacyPolicy />} />
        <Route path="/termsOfService" element={<TermsOfService />} />
      </Routes>
    </BrowserRouter>
  );
}

export default App;

index.js

import React from 'react';
import ReactDOM from 'react-dom';
import App from './App';
  
ReactDOM.render(
    <App />,
  document.getElementById('root')
);

索引.html

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="utf-8" />
    <link rel="icon" href="./favicon.ico" /> <!-- Used to be "%PUBLIC_URL%/favicon.ico" >> might be required when live -->
    <meta name="viewport" content="width=device-width, initial-scale=1" />
    <meta name="theme-color" content="#000000" />
    <meta name="description" content="Genesis platform for financial education." />
    <meta name="keywords" content="Genesis" class="next-head" />
    <link rel="manifest" href="%PUBLIC_URL%/manifest.json" />
    <title>Genesis</title>
  </head>
  <body>
    <noscript>You need to enable JavaScript to run this app.</noscript>
    <div id="root">
    </div>
  </body>
</html>

这是在浏览器 window 中按下 F5(刷新)按钮时的错误消息。 找不到页面 - 反应

NavBar 中的按钮可以很好地导航到不同的页面,但是刷新让我挂了......从我所做的研究中,我觉得解决方案在这些文件中的某个地方,但我就是不知道是什么改变。

在 SPA 中,您需要将所有流量发送到 index.html。 您可以通过在根文件夹中添加_redirects文件并添加以下内容来做到这一点:

/*    /index.html   200

在服务器中,它为所有请求提供 index.html,React 处理浏览器中的路由。

如果您为此使用了 CRA,请将_redirects文件放在公用文件夹中。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM