Обновление React с помощью сервера Express - PullRequest
0 голосов
/ 27 сентября 2019

Я просмотрел вопросы и не могу найти ответ.Есть похожие, но ни один из них не помог.

Вот сделка.Я пытаюсь обновить страницу React на любой странице, кроме домашней, т. Е. https://amazingdomain/nextpage

. Я знаю, что если я на этой странице и обновляюсь, я получу Express 404, потому что он не знает, что отправлять.,Мой сервер размещен на AWS как экземпляр EC2, а мой интерфейс размещен на популярном хостинг-сайте.Все работает нормально, пока я не попробую обновить страницу, отличную от домашней.Я в недоумении здесь.Я ищу и не могу найти ответ.

Мой React Router выглядит так:

      render() {
    return (
        <Router>
          <div className="App">
            <Switch>
              <Route exact path="/" component={Homepage} />
              <Route exact path="/firstPage" component={FirstPage} />
              <Route exact path="/secondPage" component={SecondPage} />
              <Route exact path="/thirdPage" component={ThirdPage} />
              <Route path='/*' exact={true} component={Page404} />
            </Switch>
          </div>  
        </Router>

    );
  }
}

Мой сервер выглядит так:

const express = require("express");
const cors = require('cors');
const bodyParser = require('body-parser');
const nodemailer = require('nodemailer');

const config = require('./config.js');

const app = express();

app.use(cors());
app.use(express.json());

app.use((req, res, next) => {
    res.header("Access-Control-Allow-Origin", "*");
    res.header("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept");
    next();
});


//Here is my attempt to get the page to refresh
app.get('*', (req, res) =>{
    res.sendFile(path.join(__dirname + '/public/index.html'));
});

app.listen(port, () => {
    console.log(`Server Running on Port: ${port}`);
});

Я знаю, что естьhashrouter, и я хотел бы избежать его использования.Я знаю, что есть и браузер роутер.Я пытался, но все равно получаю ошибку 404.

Я хочу иметь возможность перейти к https://amazingdomain/firstpage, нажать f5 и вернуться на ту же самую страницу в работе.Любая помощь будет оценена!

...