#node.js #reactjs #web-applications #cpanel #web-deployment
#node.js #reactjs #веб-приложения #cpanel #веб-развертывание
Вопрос:
Я загрузил свою папку сборки в папку cPanel public_html, но когда я захожу в домен «https://domain-name/build /‘ Я просто получаю пустую страницу. Когда я смотрю на исходный код страницы, появляется сообщение «Ошибка при загрузке ресурса: сервер ответил со статическим статусом 404 ()» для статических файлов js и css. Любая помощь действительно ценится.
Комментарии:
1. Можете ли вы запустить эту статическую сборку в своей локальной среде? Просто попробуйте Chrome web server и посмотрите, есть ли у вас такая же ошибка.
2. Я не говорю запускать ‘npm start’, потому что он не использует вашу статическую сборку с помощью этой команды через сервер узла. Вам нужно просмотреть конфигурации вашей сборки и убедиться, что ошибка не оттуда.
3. Используете ли вы
create-react-app
?
Ответ №1:
Похоже, что вы обслуживаете свое приложение из подкаталога, который является /build
. Чтобы это заработало, вы должны сообщить разработчику интерфейса, что вы обслуживаете свое приложение в подкаталоге. Сделайте следующее, чтобы это заработало, я предполагаю, что вы используете create-react-app
,
-
Сначала добавьте
basename
свойство к вашему маршруту,<Router basename={'/build'}> {/* your Route config */} </Router>
-
обновите
homepage
свойство дляpackage.json
файла,"homepage": "https://yourdomain/build",
-
Также обновите маршруты
<Router basename={'/build'}> <Route path={`${process.env.PUBLIC_URL}/`} component={Home} /> </Router>
process.env.PUBLIC_URI
переменная будет заменена наhomepage
во время сборки. -
измените все
to
атрибуты вхождения в вашем компоненте reactLink
<Link to={`${process.env.PUBLIC_URL}/page`}> ... </Link>
Теперь ваше приложение должно работать под https://yourdomain/build
.
Комментарии:
1. Да, я использую create-react-app. Я попробую это прямо сейчас, спасибо за вашу помощь!