Развертывание Node.js Приложение React на cPanel — «Не удалось загрузить ресурс: сервер ответил со статусом 404 ()»

#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 ,

  1. Сначала добавьте basename свойство к вашему маршруту,

     <Router basename={'/build'}>
      {/* your Route config */}
    </Router>
      
  2. обновите homepage свойство для package.json файла,

     "homepage": "https://yourdomain/build",
      
  3. Также обновите маршруты

     <Router basename={'/build'}>
      <Route path={`${process.env.PUBLIC_URL}/`} component={Home} />
    </Router>
      

    process.env.PUBLIC_URI переменная будет заменена на homepage во время сборки.

  4. измените все to атрибуты вхождения в вашем компоненте react Link

     <Link to={`${process.env.PUBLIC_URL}/page`}> ... </Link>
      

Теперь ваше приложение должно работать под https://yourdomain/build .

Комментарии:

1. Да, я использую create-react-app. Я попробую это прямо сейчас, спасибо за вашу помощь!