Направить все 404 ответа в Sails.js на статический ресурс index.html для одностраничного приложения? - PullRequest
0 голосов
/ 15 ноября 2018

У меня есть одностраничное приложение 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 Есть ли более хороший способ сделать это?

...