Используйте React Router вместе с Express.js - PullRequest
0 голосов
/ 28 июня 2018

Вот что я пытаюсь сделать:

  • / api / * обрабатывается Express.js
  • все остальное обрабатывается в React Router Dom

Я создал свое приложение, используя create-Reaction-app, и извлек его. По какой-то причине мой экспресс-сервер не работает должным образом:

const express = require("express");
const path = require("path");

const port = 3000;
const app = express();

app.get("*", (req, res) => {
    res.status(200).sendFile(path.resolve(path.join(__dirname, "../build/index.html")));
});

Когда я выполняю yarn build (который по умолчанию node scripts/build.js поставляется с create-реагировать-app), он создает мое приложение, затем я запускаю экспресс-сервер и перехожу на него, и на консоли появляется пустая страница с консолью. вывод:

Ресурс интерпретируется как таблица стилей, но передается с текстом MIME типа / html: "http://localhost:3000/static/css/main.766345d1.css".

main.936d1f48.js: 1 Uncaught SyntaxError: Неожиданный токен <</p>

Это происходит, когда мое свойство homepage не установлено в package.json.

Когда я устанавливаю его на ./, это происходит:

Ресурс интерпретируется как таблица стилей, но передается с типом MIME. text / html: "http://localhost:3000/static/css/main.766345d1.css".

manifest.json: 1 Манифест: строка: 1, столбец: 1, неожиданный токен.

main.5e4ef579.js: 1 Uncaught SyntaxError: Неожиданный токен <</p>

Очевидно, что любой вызов перенаправлен на возврат index.html. Что я могу сделать?

Pst. Я новичок в реакции-роутере и особенно в express.js.

РЕДАКТИРОВАТЬ: Если это поможет, вот моя build структура каталогов: enter image description here

Также обратите внимание, что я запускаю приложение, собирая, а затем просто запускаю экспресс-сервер, хотя я не уверен, что так оно и должно быть.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...