角度“资产”文件夹的IIS URL重写失败

时间:2018-07-12 19:19:51

标签: asp.net angular iis url-rewriting iis-7.5

我正在尝试使用URL重写在IIS中部署angular 6项目(具有延迟加载模块路由)。下面是我的文件夹结构

enter image description here

和下面是我的web.config文件

<configuration>
<system.webServer>
  <rewrite>
    <rules>
      <rule name="Angular 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>
     <outboundRules>
                       <rule name="CDN_ReWrite_Images" enabled="true" preCondition="IsHtml" stopProcessing="true">
                         <match serverVariable="HTTP_ACCEPT_ENCODING" pattern="^(.*)/(assets)/(.*)" />
                         <action type="Rewrite" value="http://localhost:4300/{R:3}" />
                         <conditions>
                         </conditions>
                       </rule>
                       <preConditions>
                         <preCondition name="IsHtml" logicalGrouping="MatchAny">
                           <add input="{RESPONSE_CONTENT_TYPE}" pattern="^text/html" />
                         </preCondition>
                       </preConditions>
    </outboundRules>
  </rewrite>
</system.webServer>
</configuration>

角度路线工作正常。此处的问题是当我的应用程序尝试访问资产文件夹的内容时,它会将资产包括为URL的一部分。我尝试如下创建出站规则以忽略资产文件夹。但这行不通。

理想的路线应该是

http://localhost:4300/json/data_list.json

相反,它尝试访问

http://localhost:4300/assets/json/data_list.json

让我知道我在这里做错了什么。谢谢

0 个答案:

没有答案