Маршрутизатор в реакции - PullRequest
       10

Маршрутизатор в реакции

0 голосов
/ 28 февраля 2020

Я развернул веб-сайт, созданный с помощью create-react-app и использовал netlify для развертывания. Все прошло хорошо, за исключением того, что я обнаружил, что router не работает должным образом. Прямая ссылка и refre sh страницы ca Я должен упомянуть, что я не создал никакого бэкэнда для него. Мой роутер выглядит так:

import React, { Component } from 'react';
import {
  BrowserRouter as Router,
  Route,
  Switch
} from 'react-router-dom';
import ScrollToTop from './components/scroll-top';
import HomePage from './pages/homepage';
import AboutPage from './pages/aboutPage';
import ContactPage from './pages/contactPage';
import ServicesPage from './pages/servicesPage';
import PrivacyPolicy from './pages/privacy';


class App extends Component {
  render(){
    return (
      <Router>
        <ScrollToTop >
          <Switch>
              <Route exact path= {process.env.PUBLIC_URL + "/"} component={HomePage} />
              <Route path={process.env.PUBLIC_URL +"/about"} component={AboutPage}  />
              <Route path={process.env.PUBLIC_URL + "/contact"} component={ContactPage} />
              <Route path={process.env.PUBLIC_URL + "/services"} component={ServicesPage} />
              <Route path={process.env.PUBLIC_URL + "/privacy"} component={PrivacyPolicy} />
          </Switch>
        </ScrollToTop>
      </Router>
    );
}};


export default App;
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/16.6.3/umd/react.production.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/react-dom/16.6.3/umd/react-dom.production.min.js"></script>

1 Ответ

1 голос
/ 28 февраля 2020

netlify развертывания предназначены для stati c сайтов

Чтобы приложение работало правильно, вы должны сгенерировать stati c сайт с такими инструментами, как Gatsby или Next. js (эта ссылка Next. js приведет вас к генерации сайта stati c)

Причина в том, что netlify не будет запускать код вашего маршрутизатора на сервере. Он будет только на сервере c файлов.

Надеюсь, что это даст вам некоторую ясность.

...