Angular Маршрутизация - сначала необходимо использовать индекс. html для маршрута на работу - PullRequest
0 голосов
/ 11 марта 2020

Я новичок в Angular и развернул приложение на IIS 10 вне папки wwwroot. В IIS установлен URL Rewrite, и это содержимое файла 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" />
        </conditions>
        <action type="Rewrite" url="./index.html" />
      </rule>
    </rules>
  </rewrite>
</system.webServer>

</configuration>

В индексе. html файл, который у меня есть <base href="/">

Когда я построить приложение, это команда, которую я использую:

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

Когда я захожу на сайт https://servername/index.html страница загружается и URL становится https://servername/myapp/.

Если я пытаюсь напрямую go до https://servername/myapp/, я получаю ошибка сервера 500, ЕСЛИ Я не использую https://servername/index.html сначала.

Моя конечная цель - использовать https://servername/myapp/?param1=123&param2=321 Однако это работает только при посещении https://servername/index.html первый.

1 Ответ

0 голосов
/ 16 марта 2020

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

<system.web> <customErrors mode="Off"/> </system.web>

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