У меня есть одностраничное приложение React 16 (созданное с помощью create-react-app
), которое компилируется в каталог build
моего приложения Sails 1.0, я обновил .sailsrc
, чтобы указать Sails на этот каталог для загрузки статическоговместо ресурсов, и когда я загружаю localhost: 1337 все работает отлично: приложение React загружается и получает данные с конечных точек моего приложения Sails.
Проблема в том, что я использую React Router (с обычнымURL-пути, а не HashRouter) и все, что за пределами главной страницы index.html, которая должна попасть в React Router, вместо этого получает 404 от Sails.За последние несколько лет я встречал ответы на следующие вопросы:
Я не хочу перенаправлять на представление или контроллер, я просто хочу отправить статический файл build/index.html
для любых 404 ответов.Что касается последнего вопроса в этом списке, я не смог выяснить, как вписать это в то, что я хочу сделать.
Я смог сделать это, добавивapi/responses/notFound.js
со следующим содержимым:
const fs = require('fs');
const content = fs.readFileSync('build/index.html');
module.exports = function notFound () {
return this.res.send(content.toString());
};
Но это кажется слишком хакерским.: P Есть ли более хороший способ сделать это?