Url Rewrite: развертывание приложения Node.js-angular в iis - PullRequest
0 голосов
/ 29 июня 2019

Я развернул node.js и угловое приложение в iisnode.Я вижу, что перенаправление или перезапись не работает должным образом.

, например: https://xyz/api/abc ==> правильно выбирается

https://xyz/abc ==> говорится, что вы неУ меня нет разрешения на просмотр этого каталога или страницы

Я определил маршрут для / abc внутри угловой маршрутизации / abc iam маршрутизация к компоненту abc.

Я сделал ng build --prod, всеугловые компоненты хранятся в виде статического содержимого в каталоге клиента.

Это web.config, я должен как-то направить / abc запрос к angular, который знает, как выполнить сервер /abc.

Ниже мойweb.config и app.js

web.config

<configuration>
    <system.web>
        <customErrors mode="Off"/>
        <httpCookies httpOnlyCookies="true" requireSSL="true"/>
    </system.web>
   <system.webServer>
     <handlers>
       <add name="iisnode" path="app.js" verb="*" modules="iisnode" />
     </handlers> 
     <rewrite> 
       <rules>
        <rule name="HTTP to Prod HTTPS redirect" stopProcessing="true">
          <match url="(.*)" />
          <conditions>
            <add input="{HTTPS}" pattern="off" ignoreCase="true" />
          </conditions>
          <action type="Redirect" redirectType="Found" url="https://{HTTP_HOST}/{R:1}" />
        </rule>
        <rule name="infrc">
          <match url="/*" />
          <action type="Rewrite" url="app.js" />
        </rule>
       </rules>
     </rewrite>
   </system.webServer>
 </configuration>

app.js

var app = express();
app.use(express.static(path.join(__dirname, '/client')));
app.get('/',function(req,res){  
  res.sendFile(path.join(__dirname, 'client/index.html'));
}); 
...