У меня возникла проблема с развертыванием приложения «Реакция / Избыточность», использующего реагирующий маршрутизатор.Приложение было создано с использованием create-реагировать-приложение и heroku-buildpack-static .Я попытался развернуть приложение как в Netlify, так и в Heroku, и получаю ту же ошибку;пустая страница без ошибок, и Консоль инструментов разработчика показывает ошибку "Failed to load resource: the server responded with a status of 404 (Not Found)"
для всех файлов, которые должны находиться в папке build
.Проверка вкладки «Приложение» инструментов сборки показывает, что ни манифест, ни файлы сценариев, ни таблицы стилей не были правильно загружены на страницу (из-за ошибки при удаленной компиляции?).Папка сборки правильно скомпилирована локально, и приложение работает на моем компьютере.
Я думаю, что это проблема с маршрутизатором реакции, которая путает процесс сборки на heroku.Я прочитал это и это при развертывании, и ни одно из изменений не позволяет удаленной сборке правильно настроить статические страницы на index.html
;каждый раз, когда они либо компилируются пустыми, либо если public/manifest.json
изменяется на "start_url": "."
, index.html
перезаписывает все остальные файлы сборки.
Я попытался добавить файл static.json
:
{
"root": "build/",
"clean_urls": false,
"routes": {
"/**": "index.html"
}
}
в корень приложения, но это тоже не помогло.
Кажется, что для героки отсутствуют инструкции по управлению сборкой, но я не знаю, что это такое.
Может кто-нибудь помочь с этим?Спасибо.
РЕДАКТИРОВАТЬ:
Вот шаги, которые я должен был сделать, чтобы получить работает на Heroku.Мне пришлось пересобрать его и не использовать пакет сборки create-реагировать-приложение, которое я попробовал в первый раз.Файл static.json
, указанный выше, был требованием для пакета сборки, но он продолжал перезаписывать статические файлы в папке сборки файлом index.html
.Так что я убрал это.
То, что сработало, следовало этому учебнику и модифицировалось по мере необходимости.Требовалось несколько вещей:
вместо сервера, имеющего конечную точку app.get('/', function (req, res) {
Я добавил подстановочный знак: app.get('/*', function (req, res) {
.Это было из React Deployment Guidance
create-Reaction-app настраивает manifest.json
с "start_url": "."
Я изменил это на "start_url": "./index.html"
в package.json
Я должен был убедиться, что домашняя страница была распознана как текущий файл: "hompage": "."
Это были шаги, необходимые для получения Herokuзагружать правильные файлы сборки и ничего не перезаписывать с помощью index.html
.
В DevTool я все еще получаю интересное предупреждение: DevTools failed to parse SourceMap: https://cloze-maker.herokuapp.com/static/js/1.4929ae08.chunk.js.map
Но приложение работает.
Надеюсь, это поможет кому-то еще.