2017-10-10 6 views
0

J'ai une application angulaire 2+ hébergée sur IIS 8. Toutes les routes sont des routes côté client, sauf pour une route commençant par /mutual-funds/*.Pour ces routes, Je veux que IIS obtienne ce dossier et emploie sa page d'index. J'ai écrit des règles de réécriture mais cela ne fonctionne pas sur le rechargement. Toute aide serait appréciée.Angular 2+ app route hébergée par IIS ne fonctionne pas sur recharger

Le fichier de configuration Web est:

<rule name="AngularJS Routes" stopProcessing="false"> 
     <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="/webapp/" /> 
    </rule> 





    <rule name="Check1" stopProcessing="false"> 
     <match url="/mutual-funds/"/> 
     <conditions logicalGrouping="MatchAll"> 
     <add input="{ REQUEST_FILENAME}" matchType="IsFile" negate="true" /> 
     <add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" /> 
     </conditions> 
     <action type="Rewrite" url="/webapp/mutual-funds/" /> 
    </rule> 

Répondre

0

Je serais intéressé si quelqu'un a une réponse.

Pour contourner ce problème, vous pouvez utiliser la stratégie de localisation de Hash ajoutant { useHash: true } où vous fournissez le routeur:

RouterModule.forRoot(routes, {useHash: true}) 

Il ajoutera un « # » après dans l'URL. Ensuite, vous pouvez accéder à votre page avec l'URL http://your-context/#mutual-funds

Voici un article Goot sur la stratégie de localisation: https://codecraft.tv/courses/angular/routing/routing-strategies/

+0

je ne veux pas utiliser HashLocationStratgey. –