在Azure App Service上部署多个角度单页应用程序

时间:2019-05-27 02:11:14

标签: angular azure-devops azure-web-sites

我正在尝试将两个Angular应用程序部署到一个应用程序服务计划中,其中一个应用程序可以通过baseurl访问,另一个可以通过baseurl / app1访问

我能够使用虚拟目录路径映射使其工作。但是问题是,当我尝试执行baseurl / app1 / route时,无法访问角深路由。

<rewrite>
  <rules>
    <rule name="Angular routing to checkout" stopProcessing="true">
      <match url="^app1/.*"/>
      <conditions logicalGrouping="MatchAll">
      </conditions>
      <action type="Rewrite" url="/app1/" appendQueryString="true"/>
    </rule>
  </rules>
</rewrite>

我需要一种方法让Angular应用程序处理/ app1 / route的内部路由。

1 个答案:

答案 0 :(得分:0)

web.config对我有用:

<configuration>
  <system.webServer>
    <rewrite>
      <rules>
        <rule name="app2" stopProcessing="true">
          <match url="^app2/.*" />
          <conditions logicalGrouping="MatchAll">
            <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
            <add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
          </conditions>
          <action type="Rewrite" url="/app2/" />
        </rule>
        <rule name="app" 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>
    <caching enabled="true" enableKernelCache="true">
      <profiles>
        <add extension=".js" policy="DisableCache" kernelCachePolicy="DisableCache" />
      </profiles>
    </caching>
  </system.webServer>
</configuration>

在我的appService中,它看起来像这样:

-- wwwroot // angular build of main app
-- wwwroot_app2 // angular build of second app available on /app2

我将web.config放在wwwroot内。如果我没记错的话,在appService中只有一个web.config文件很重要。 还要记住在第二个应用程序中正确设置baseHrefdeployUrl