Разверните внешний интерфейс Angular 4 и серверную часть .Net Web Api на IIS на том же веб-сайте 404 при обновлении. - PullRequest
0 голосов
/ 18 октября 2019

У меня есть веб-приложение, состоящее из клиентского кода Angular 4, который вызывает часть серверных сервисов, написанную на ASP.NET WebAPi. Я развернул свое веб-приложение на IIS v10 на том же веб-сайте, но при обновлении я получаю исключение 404. Не найдено.

Так что теперь у меня есть один веб-сайт в IIS с двумя подкаталогами, называемый wwwroot, который содержит производственный код Angular ипапка bin для кода выпуска WebApi. Сайт работает хорошо, если я не нажму кнопку обновления браузера, где я беру 404 Исключение. Я нашел много решений в Интернете, но никто не работает. Я попытался установить компонент IIS urlrewrite и добавил это правило перезаписи в мой файл Web.config, расположенный в корневой папке:

<rewrite>
      <rules>
        <rule name="AngularJS 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>

, но я получил следующие ошибки: localhost /: 1 Ресурс интерпретируется как Таблица стилей, но переносится сMIME-тип text / html: "http://localhost:8084/styles.a41bc47d7e564e63171c.bundle.css". inline.f6f68ecaf0de3791ceeb.bundle.js: 1 Uncaught SyntaxError: неожиданный токен '<' polyfills.0eff33741bac279a3ec4.bundle.js: 1 Uncaught.bundle.js: 1 Uncaught SyntaxError: неожиданный токен '<' main.2ee824fa31f5e7f44a12.bundle.js: 1 Uncaught SyntaxError: неожиданный токен '<' Как решить проблему? Заранее спасибо </p>

Ответы [ 2 ]

0 голосов
/ 28 октября 2019

У меня была точно такая же проблема. Я помещаю файлы приложений WebApi и Angular в одну папку на IIS. Поэтому единственной проблемой, которую вам нужно исправить, является 404 API-интерфейса для перенаправления его на угловую точку входа, в моем случае это "/", поскольку у меня есть Index.html. в корневой папке

В web.config удалите раздел перезаписи и добавьте его в system.webServer:

<system.webServer>

  <httpErrors errorMode="Custom" existingResponse="Auto">
   <clear />
   <error statusCode="404" path="/" responseMode="ExecuteURL" />
  </httpErrors>

Это работает как чудо. Угловые маршруты будут правильно обрабатывать URL.

0 голосов
/ 18 октября 2019
Uncaught SyntaxError: Unexpected token '<'

Вышеуказанная ошибка возникает, когда они не обрабатывают запрошенный файл css и js, и сервер возвращает код состояния 200 без ошибок. Но возвращенный файл содержит ошибку в виде HTML-текста

Так что здесь выше, когда вы проверяете ответ в chrome на вкладке сети, вы найдете

<!DOCTYPE HTML PUBLIC ...>
   <html>
     ...
 Some html error in side this 
</body></html>

У нас естьрешил эту проблему, отключив политику проверки IPv6 .

...