Веб-приложение службы приложений, показывающее файловую структуру вместо фактического веб-приложения

#reactjs #azure #azure-web-app-service

#reactjs #лазурный #azure-веб-приложение-сервис

Вопрос:

Сегодня я развернул свое клиентское приложение react в службе приложений Azure. Проблема в том, что вместо отображения интересующего меня сайта он возвращает структуру wwwroot. Даже если я изменю каталог на /src/App.js он возвращает код приложения. В чем же проблема?

введите описание изображения здесь

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

1. что произойдет , если вы нажмете на public/index.html кнопку ? это встроенное веб-приложение?

2. @azium — это пустая страница. Я создал веб-приложение с помощью команды «npm start»

3. npm start не создает приложение npm run build , которое оно создает. это сгенерирует статические файлы, необходимые для размещения вашего веб-сайта

4. @azium и где я должен выполнить эту команду? В консоли Kudu?

5. никогда не слышал о куду. вам нужно это использовать?

Ответ №1:

При запуске приложения узла в Windows Azure Web Apps IIS используется в качестве веб-сервера вместе с iisnode, и, скорее всего, какая-то конфигурация неверна, поэтому IIS не знает, с чего начать. Я бы посоветовал позволить Azure обрабатывать создание web.config, и вы не трогаете его, если не знаете, что делаете:

  1. Создайте файл .deployment со следующим содержимым
     [config]
    SCM_DO_BUILD_DURING_DEPLOYMENT = true
     
  2. Поместите .deployment файл, а также содержимое вашего приложения React (не включайте web.config, вам также не нужно включать папку node_modules, Azure обработает это, поскольку для SCM_DO_BUILD_DURING_DEPLOYMENT установлено значение true) в upload.zip досье.
  3. Удалите содержимое /wwwroot в Azure
  4. Выполнить az webapp deployment source config-zip -g <ResourceGroupName> -n <AppServiceName> --src upload.zip

Должен быть создан новый web.config, который должен содержать обработчик для server.js какой файл будет обслуживаться Node.js .

Ответ №2:

Это решаемая проблема. Спасибо @azium

Единственное, что мне нужно было сделать, это убежать

 npm run build
 

в локальном режиме перед развертыванием