Узлы Azure AppService с виртуальным каталогом - PullRequest
0 голосов
/ 30 января 2019

У меня есть веб-сайт, построенный на Angular7, с рендерингом на стороне сервера, развернутым в службе приложений Azure.Мне пришлось добавить файл web.config, чтобы запустить server.js.Вот файл web.config

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <system.webServer>    
    <webSocket enabled="false" />
    <handlers>    
      <add name="iisnode" path="server.js" verb="*" modules="iisnode"/>
    </handlers>
    <rewrite>
      <rules>
        <!-- Do not interfere with requests for node-inspector debugging -->
        <rule name="NodeInspector" patternSyntax="ECMAScript" stopProcessing="true">
          <match url="^server.js\/debug[\/]?" />
        </rule>
        <!-- All other URLs are mapped to the node.js site entry point -->
        <rule name="DynamicContent">
          <conditions>
            <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="True"/>
          </conditions>
          <action type="Rewrite" url="server.js"/>
        </rule>
      </rules>
    </rewrite>    
    <security>
      <requestFiltering>
        <hiddenSegments>
          <remove segment="bin"/>
        </hiddenSegments>
      </requestFiltering>
    </security>
    <httpErrors existingResponse="PassThrough" />
    </system.webServer>
    </configuration>

Этот сайт развернут на mysite.com и все работает нормально.

Теперь мне нужно создать виртуальный каталог mysite.com/app для хранения другого приложения(на старом AngularJS).Без рендеринга на стороне сервера я просто создаю виртуальный каталог на портале Azure, и все работает отлично.Из-за серверной стороны и «перенаправления» на server.js виртуальный каталог больше не работает.Есть ли какое-либо правило, которое нужно поместить в файл web.config, чтобы игнорировать запросы / app, а не запускать сервер nodejs?

1 Ответ

0 голосов
/ 31 января 2019

Я получил ответ на другой вопрос (кредит Дане), поэтому я просто добавил правило

<rule name="ignore app application" stopProcessing="true">
    <match url="^app" />
    <action type="None" />
</rule>

перед другими правилами.Таким образом, если введен URL-адрес mysite.com/app, сервер узла не будет «активирован», и виртуальный каталог будет работать как положено.

...