Проблема с маршрутизацией при запуске производственной сборки на локальном хосте - PullRequest
1 голос
/ 11 марта 2019

Я разрабатываю приложение реагирования, используя 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?

Ценю вашу помощь.

...