Erreur de rafraîchissement lors du déploiement Angular 2 sur Azure : La ressource que vous recherchez a été supprimée, son nom a été modifié ou elle est temporairement indisponible
Vous devez ajouter un fichier web.config à la racine de votre application Angular 2. C’est ainsi que les serveurs Azure (serveur IIS) fonctionnent.
J’utilise webpack, donc je l’ai placé dans le dossier src. N’oubliez pas de le copier dans votre dossier dist lors du déploiement. J’ai utilisé CopyWebpackPlugin pour configurer mon webpack afin qu’il le copie.
Voici le fichier web.config :
<?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>
Il contient 2 règles :
La 1re règle redirige tous les appels vers HTTPS. Supprimez-la si vous n’utilisez pas HTTPS.
La 2e règle corrige votre problème. J’ai trouvé la référence de la 2e règle ici (merci à l’utilisateur gravityaddiction de www.reddit.com) :
https://www.reddit.com/r/Angular2/comments/4sl719/moving_an_angular_2_app_to_a_real_server/