AngularJS Umbraco 内的 SPA
AngularJS SPA within Umbraco
我有一个 Umbraco 6.4 网站,我现在正试图在该网站下放置一个 AngularJS 2 SPA。
Umbraco:/
Angular: /appname
我的问题是由 Umbraco 完成的路由。由于 Umbraco 处理所有路由到根级别,当 Angular 应用程序刷新时: /appname/apage
我得到一个 404 - Not Found
.
我在 UrlRewriting.config
中添加了 URL 重写,但是我这样做的方式是目标 url 始终是 index.html
文件。
<add name="myapp" virtualUrl="^~/myapp/*" rewriteUrlParameter="ExcludeFromClientQueryString" destinationUrl="~/myapp/index.html" ignoreCase="true" />
我希望能够做的是定义一个重写,它让我在路径以 /myapp/
.
开头时覆盖 Umbraco 路由
我已阅读 this 博客 post,但它与我的问题并没有真正的关系,因为我构建 SPA 的方式与 Umbraco 没有任何关系。另外,我必须将 Umbraco 作为根目录,因此我也不能依赖 IIS 为我做这件事。
如果有人能为我指明方向,那就太好了。谢谢
对于可能有类似问题的任何其他人:
我可以通过将 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>
我有一个 Umbraco 6.4 网站,我现在正试图在该网站下放置一个 AngularJS 2 SPA。
Umbraco:/
Angular: /appname
我的问题是由 Umbraco 完成的路由。由于 Umbraco 处理所有路由到根级别,当 Angular 应用程序刷新时: /appname/apage
我得到一个 404 - Not Found
.
我在 UrlRewriting.config
中添加了 URL 重写,但是我这样做的方式是目标 url 始终是 index.html
文件。
<add name="myapp" virtualUrl="^~/myapp/*" rewriteUrlParameter="ExcludeFromClientQueryString" destinationUrl="~/myapp/index.html" ignoreCase="true" />
我希望能够做的是定义一个重写,它让我在路径以 /myapp/
.
我已阅读 this 博客 post,但它与我的问题并没有真正的关系,因为我构建 SPA 的方式与 Umbraco 没有任何关系。另外,我必须将 Umbraco 作为根目录,因此我也不能依赖 IIS 为我做这件事。
如果有人能为我指明方向,那就太好了。谢谢
对于可能有类似问题的任何其他人:
我可以通过将 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>