Umbraco内的AngularJS SPA

时间:2016-05-27 16:22:36

标签: angularjs iis routing umbraco

我有一个Umbraco 6.4网站,我现在正试图建立一个AngularJS 2 SPA。

Umbraco:/

Angular:/appname

我的问题在于Umbraco完成的路由。由于Umbraco处理直到根级别的所有路由,因此当Angular应用程序刷新时:/appname/apage我得到404 - Not Found

我在UrlRewriting.config中添加了一个网址重写,但我已经完成了目标网址始终为index.html文件的方式。

<add name="myapp" virtualUrl="^~/myapp/*" rewriteUrlParameter="ExcludeFromClientQueryString" destinationUrl="~/myapp/index.html" ignoreCase="true" />

我希望能够做的是定义一个重写,只要路径以/myapp/开头,我就可以覆盖Umbraco路由。

我已经阅读了this博文,但它与我的问题没有关系,因为我建立SPA的方式与Umbraco没有任何关系。另外,我必须将Umbraco作为根目录,因此我不能依赖IIS为我做这个。

如果有人,任何人都能指出我的方向,那就太好了。感谢

1 个答案:

答案 0 :(得分:0)

对于可能有类似问题的其他人:

我可以通过在web.config目录中添加/appname并添加以下配置来解决此问题。

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
   <system.webServer>
      <rewrite>
         <rules>
            <rule name="ruleName" 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="/myapp/" />
            </rule>
         </rules>
      </rewrite>
      <defaultDocument enabled="true">
         <files>
            <clear />
            <add value="index.html" />
         </files>
      </defaultDocument>
   </system.webServer>
</configuration>