<p>Vous devez ajouter un fichier <strong>web.config</strong> à la racine de votre application Angular 2. C’est ainsi que les serveurs Azure (serveur IIS) fonctionnent.</p>
<p>J’utilise webpack, donc je l’ai placé dans le dossier <strong>src</strong>. N’oubliez pas de le copier dans votre dossier <strong>dist</strong> lors du déploiement. J’ai utilisé <strong>CopyWebpackPlugin</strong> pour configurer mon webpack afin qu’il le copie.</p>
<p>Voici le fichier web.config :</p>
<pre><code class="lang-auto"><?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.webServer>
<rewrite>
<rules>
<clear />
<rule name="Redirect to https" stopProcessing="true">
<match url="(.)" />
<conditions>
<add input="{HTTPS}" pattern="off" ignoreCase="true" />
</conditions>
<action type="Redirect" url="https://{HTTP_HOST}{REQUEST_URI}" redirectType="Permanent" appendQueryString="false" />
</rule>
<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" />
</conditions>
<action type="Rewrite" url="/" />
</rule>
</rules>
</rewrite>
</system.webServer>
</configuration>
</code></pre>
<p>Il contient 2 règles :</p>
<p>La 1re règle redirige tous les appels vers HTTPS. Supprimez-la si vous n’utilisez pas HTTPS.</p>
<p>La 2e règle corrige votre problème. J’ai trouvé la référence de la 2e règle ici (merci à l’utilisateur <strong>gravityaddiction</strong> de <a href="http://www.reddit.com">www.reddit.com</a>) :<br>
<a href="https://www.reddit.com/r/Angular2/comments/4sl719/moving_an_angular_2_app_to_a_real_server/">https://www.reddit.com/r/Angular2/comments/4sl719/moving_an_angular_2_app_to_a_real_server/</a></p>