Приложение Angular не загружается после публикации в IE11

#asp.net #angular #internet-explorer #iis

#asp.net #angular #Internet-Explorer #iis

Вопрос:

В настоящее время я разрабатываю приложение в Angular с ASP.NET серверная часть. Я настроил проект для нормальной работы локально в IE11 (обновите полизаполнения, список браузера и добавьте файлы ES5 TsConfig), но когда я опубликовал его на сервере через IIS, страница не загружается и застревает при «Загрузке …»

Чтобы протестировать публикацию, я попытался опубликовать приложение Angular / ASP.NET по умолчанию с теми же результатами.

Консоль отображает четыре ошибки:

 SCRIPT1002: Syntax error
runtime.458556a34b891ea32398.js (1,1)

SCRIPT1002: Syntax error
polyfills-es5.7119ad0e4b3aeae98a0b.js (1,1)

SCRIPT1002: Syntax error
polyfills.4efda4a4618e08b621be.js (1,1)

SCRIPT1002: Syntax error
main.59969322f93fb24d6bee.js (1,1)
  

polyfills.ts

 import 'classlist.js';
import 'web-animations-js';
import 'zone.js/dist/zone';
  

web.config

 <?xml version="1.0" encoding="utf-8"?>
<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" />
            <add input="{REQUEST_URI}" pattern="^/(api)" negate="true" />
          </conditions>
          <action type="Rewrite" url="/" />
        </rule>
      </rules>
    </rewrite>
    <defaultDocument enabled="true">
      <files>
        <add value="ClientApp/dist/index.html" />
      </files>
    </defaultDocument>
  </system.webServer>

</configuration>
  

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

1. Какие-либо ошибки в консоли браузера?

2. @BojanKogoj По какой-то причине я думал, что проверял раньше и не получил ни одной, но да, есть четыре ошибки. Я обновил вопрос, чтобы включить их.

3. Я пытаюсь проверить проблему, создав ASP.NET Основное приложение с Angular, и я просто изменяю "target": "es5" его в файле tsconfig.json. После этого я пытаюсь опубликовать сайт в локальной папке и разместить его в IIS, создав новый сайт. На моей стороне это работает нормально. Смотрите здесь . Я предлагаю вам попробовать провести тест, создав новое тестовое приложение, и посмотреть, работает оно или нет. Это может дать некоторый намек на проблему в вашем реальном приложении и помочь сузить проблему.

4. @Deepak-MSFT Это должно быть что-то с моим сервером IIS, я пробовал этот подход, и мне не повезло.

5. Устанавливали ли вы .Net Core runtime and Hosting bundle перед размещением сайта в IIS? Если нет, я предлагаю вам загрузить его в соответствии с версией .Net Core вашего сайта по этой ссылке . После его установки попробуйте снова разместить свой сайт и посмотреть, работает он или нет.

Ответ №1:

ваше приложение может выдавать ошибки в IE11, даже если оно нормально работает в других браузерах. Может быть множество причин, по которым ваше приложение Angular не работает, в том числе:

  • Отсутствуют полизаполнения polyfills.ts .
  • Использование целевой версии TypeScript, которую IE11 не поддерживает
  • Импорт сторонних зависимостей с использованием целевой версии TypeScript, которую IE11 не поддерживает

Обратитесь к этому: https://medium.com/better-programming/how-to-fix-your-angular-app-when-its-not-working-in-ie11-eb24cb6d9920

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

1. К сожалению, я уже выполнил все эти шаги, обновил полизаполнения и нацелился на ES5. Приложение отлично работает локально, проблема возникает только тогда, когда оно размещено на сервере IIS.

Ответ №2:

Спасибо @Deepak-MSFT за ответ, оказывается, у меня его не было.Пакет NET Hosting установлен на хост-компьютере. Как только я установил это, веб-сайт отображался так, как и предполагалось, за исключением пары проблем, не связанных с тем, о чем я здесь говорю.

Для тех, кому интересно, у меня возникли проблемы со строкой подключения к базе данных, я нашел другой проект, размещенный на сервере, и изменил его строку подключения: data source=[database];initial catalog=[table];persist security info=True;user id=[user id];password=[password];MultipleActiveResultSets=True;App=EntityFramework

Я также удалил web.config созданный мной файл, поскольку он, вероятно, будет мешать тому, который был создан во время публикации.