Я разрабатываю приложение реагирования, используя create-react-app
, react-router V4.3.1
. Когда я выполняю npm start
, сервер разработки работает нормально, и при последующем изменении кода страница автоматически перезагружается, и я могу переходить к разным путям маршрутизации, где я выполняю различные компоненты, такие как / login, / sign-up и т. Д.
Теперь проблема связана с производственной сборкой, когда я делаю npm run build
, сборка успешна и позже, в соответствии с create-react-app
документами, я пытаюсь запустить свое приложение на сервере, используя serve -s build
.
Маршрутизация не работает , так как корневая страница "/" (http://localhost:5000
) загружается нормально, но при последующих нажатиях кнопок входа в систему и регистрации осуществляется маршрутизация в / login и / sign-up выходит из строя. Это выдает ошибку 404 (запрошенный путь не найден).
App.js:
import React, { Component } from "react";
import "./App.css";
import { BrowserRouter as Router, Switch, Route } from "react-router-dom";
const Onboarding = React.lazy(() =>
import("./Components/Onboarding/Onboarding")
);
const Login = React.lazy(() => import("./Containers/Login/Login"));
const SignUp = React.lazy(() => import("./Containers/SignUp/SignUp"));
const LoginLegal = React.lazy(() =>
import("./Components/LoginLegal/LoginLegal")
);
class App extends Component {
render() {
return (
<div className="App">
<React.Suspense fallback={<div>Page is loading...</div>}>
<Router>
<Switch>
<Route
exact
path="/"
render={props => <Onboarding {...props} />}
/>
<Route path="/login" render={props => <Login {...props} />} />
<Route path="/sign-up" render={props => <SignUp {...props} />} />
<Route
path="/legal"
render={props => <LoginLegal {...props} />}
/>
</Switch>
</Router>
</React.Suspense>
</div>
);
}
}
export default App;
manifest.json:
{
"short_name": "React App",
"name": "Create React App Sample",
"start_url": "./index.html",
"display": "standalone",
"theme_color": "#000000",
"background_color": "#ffffff"
}
_redirects:
#Redirects for netlify to enable SPA routing.
#This file is added to enable routes to different paths when website is hosted on netlify.
#Make sure that in manifest.json file we should have : "start_url": "./index.html"
/* /index.html 200
Файл _redirects и "start_url": "./index.html"
в manifest.json
был создан для обеспечения нормальной маршрутизации netlify.
В файле package.json не указана домашняя страница.
Что следует добавить / изменить, чтобы маршрутизация работала нормально с serve -s build
?
Ценю вашу помощь.