我有一个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为我做这个。
如果有人,任何人都能指出我的方向,那就太好了。感谢
答案 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>