Я довольно новичок в CRA, и обычно я просто использую обычный React с Webpack.Я пытаюсь обслуживать мой CRA так же, как и любые другие приложения React.Моя структура файлов корневого каталога в настоящее время выглядит примерно так:
controllers/
build/
app.js
package.json
Где "app.js" - мой сервер Node / Express, build/
- папка сборки для моего приложения CRA (index.hmtl,статический каталог, манифест и т. д. - все здесь), а controllers/
- мои файлы маршрутизатора.Файл маршрутизатора, который я должен обслуживать в качестве реакции, называемый staticController.js, находится в каталоге controllers / и выглядит так:
const express = require("express");
const path = require("path");
const router = express.Router();
router.get("/client/static/home", (req, res) => {
res.sendFile(path.join(__dirname, ".." , "/build/index.html"));
})
module.exports = router;
Я импортирую этот модуль маршрутизатора в app.js, чтобы использовать его,и запустить маршрутизатор через порт 3001. Когда я захожу на localhost: 3001 / client / static / home, я получаю пустую страницу и сообщение об ошибке:
GET http://localhost:3001/static/css/1.1ee5c864.chunk.css net:: ERR_ABORTED 404 (не найдено)
Я не уверен, как указать CRA, что статический каталог и все связанные файлы сборки должны находиться в каталоге "build /".Поэтому вместо этого я перемещаю статическую папку за пределы каталога сборки в корневой каталог.Файловая структура теперь выглядит следующим образом:
controllers/
build/
static/
app.js
package.json
Когда я снова пробую маршрут, я все еще получаю ту же ошибку.Теперь я немного озадачен тем, как работает файловая структура Node.Если app.js находится в корневом каталоге, не будет ли localhost: 3001 / static / просто моей папкой static/
?Почему приложение CRA не может найти эту папку?