【问题标题】:AngularJS SPA within UmbracoUmbraco 中的 AngularJS SPA
【发布时间】:2016-05-27 16:22:36
【问题描述】:

我有一个 Umbraco 6.4 网站,我现在正尝试在该网站下放置一个 AngularJS 2 SPA。

Umbraco:/

角度:/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 博客文章,但它与我的问题并没有真正的关系,因为我构建 SPA 的方式与 Umbraco 没有任何关系。另外,我必须将 Umbraco 作为根目录,因此我也不能依赖 IIS 来为我执行此操作。

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

【问题讨论】:

    标签: angularjs iis routing umbraco


    【解决方案1】:

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

    我可以通过将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>
    

    【讨论】:

      猜你喜欢
      • 2016-06-26
      • 2017-05-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-09-28
      相关资源
      最近更新 更多