Неудачная попытка развернуть приложение Angular 7 в Azure - PullRequest
0 голосов
/ 09 апреля 2019

Я пытаюсь развернуть обновленную версию моего приложения в Azure. У меня уже есть развернутая версия Angular 4 (созданная с использованием исходного CLI 1.2.7). По причинам, которые я не помню, я решил создать новый проект с Angular CLI версии 7.3.4 для «обновления» до Angular 7.

Сначала я понял, что у меня может быть проблема, когда я пытался связать новые проекты github в моем существующем развертывании WebApps, но когда это не удалось, я решил попробовать его в автономной версии, чтобы не мешать пользователям.

Я могу успешно развернуть приложение в Центре развертывания, но когда я захожу на сайт, я получаю эту ошибку:

У вас нет прав для просмотра этого каталога или страницы.

Что напомнило мне, что мне нужен файл Web.Config в соответствии с Angular Guidelines :

//NEW APP 
<configuration>
  <system.webServer>
    <rewrite>
      <rules>
        <rule name="Angular Routes" stopProcessing="true">
          <match url=".*" />
          <conditions logicalGrouping="MatchAll">
            <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
            <add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
          </conditions>
          <action type="Rewrite" url="/index.html" />
        </rule>
      </rules>
    </rewrite>
  </system.webServer>
</configuration>

Это похоже, но не совпадает с файлом web.config, который есть в моей рабочей версии:

//OLD WORKING APP
<configuration>
  <system.webServer>
    <rewrite>
      <rules>
        <rule name="AngularJS" stopProcessing="true">
          <match url="^(?!.*(.bundle.js|.bundle.map|.bundle.js.gz|.bundle.css|.bundle.css.gz|.png|.jpg|.ico)).*$" />
          <conditions logicalGrouping="MatchAll">
          </conditions>
          <action type="Rewrite" url="/"  appendQueryString="true" />
        </rule>
      </rules>
    </rewrite>
  </system.webServer>
</configuration>

Естественно, я тоже это пробовал и получаю тот же результат.

Когда я проверяю структуру папок моего рабочего приложения и сравниваю его с новым приложением, я думаю, что именно в этом проблема. Поскольку все мои угловые файлы и мой web.config хранятся в ** dist {APP Name} **, но в моем рабочем приложении все файлы хранятся в папке wwwroot.

Новое приложение

wwwroot of new App

Старое рабочее приложение

wwwroot of old App

Любые идеи о том, как я могу это исправить, могу ли я написать параметр приложения, чтобы указать Azure, где искать файлы?

Заранее спасибо

1 Ответ

0 голосов
/ 09 апреля 2019

Во-первых, вам нужно экспортировать и развернуть папку dist в вашей службе приложений. Папка dist достаточно для запуска вашего приложения Angular.

ng build --base-href "/yourappname/" --prod

Создает папку dist и копирует папку dist в wwwroot \ yourappname. Я считаю, что вам может понадобиться index.html, index.htm или аналогичные страницы для начальной загрузки вашего приложения.

Попробуйте и дайте нам знать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...