Я вернулся ( Обновление React с сервером Express ).Я надеюсь выяснить эту проблему.
Краткий обзор: Я пытаюсь обновить свой реагирующий веб-сайт.Если я зайду на www.domain.com/about, я получу:
Not Found Запрошенный URL-адрес не найден на этом сервере.
то же самое, если я нажму на кнопку, чтобы перейти к/ about и нажмите refresh Я получу эту ошибку.
Моя цель Чтобы перейти на мой сайт, нажмите на другую страницу (т.е. domain.com/anotherpage), нажмите f5 для обновленияи получить ту же страницу.
Я понимаю:
Проблема в том, что React просто меняет URL-адрес, когда я нажимаю на кнопку приложения React или ссылку, чтобы перейти кдругая страница.Затем, когда я обновляю, он ищет www.domain.com/whothing.Поскольку для него ничего нет, возвращается 404.
Я также знаю, что если я смогу заставить свое приложение React перенаправлять весь трафик на index.html.React справится с остальными.
То, что я пробовал:
В моем предыдущем посте было предложено использовать мой хостинг-сайт для перенаправления трафика на index.html.Тем не менее, мой хостинг позволяет мне настроить DNS для поддоменов, но ничего после этого.(т. е. www.subdomain.domain.com работает нормально, но www.domain.com/ что бы то ни было), чего я ожидал, но думал, что попробую.
У меня есть приложение для экспресс, однако, оно нене обслуживает файлы, он просто ждет нажатия кнопки, а затем делает вещи.Мне не нужен сервер, чтобы запустить сайт.
Я попытался создать маршрут в экспрессе для этого, и он выглядит так:
app.get('/*', (req, res) =>{
res.sendFile(path.join(__dirname + '/public/index.html'));
});
Я все еще получаю ту же ошибку 404 с этим.
Я также добавилindex.html на мой сервер.Думая, что нужно .html файл для отправки.(Возможно, это хорошо).
Чего я не знаю
Где React ищет index.html в рабочей среде?Когда я просматриваю файлы сборки в asset-manifest.json, появляется строка кода «index.html»: «/index.html».Есть ли где найти индексный файл?Если да, могу ли я изменить это, чтобы переходить к index.html при каждом запросе страницы?
Очевидно, я хочу, чтобы пользователь мог обновить страницу и вернуться к ней.Может кто-нибудь направить меня в правильном направлении?
Заранее спасибо!