URL 在 ASP.NET 中重写 5
URL rewrite in ASP.NET 5
我正在使用 ASP.NET 5,其中更改了整个文件夹结构并替换了 web.config(与之前的 ASP.NET 版本相比)。我正在使用 angularJS 进行客户端路由,我有这条路线:
.when('/movies/add', {
templateUrl: '/Views/add.html',
controller: 'MoviesAddController'
})
一切正常,只要我从 index.html 开始并单击 link 到 /movies/add。如果我使用 /movies/add URL 重新加载页面,服务器会给我一个 404。根据本教程,我应该在 web.config 中重写,如下所示:
<!-- from -->
<configuration>
<system.webServer>
<modules runAllManagedModulesForAllRequests="true" />
<rewrite>
<rules>
<!--Redirect selected traffic to index -->
<rule name="Index Rule" stopProcessing="true">
<match url=".*" />
<conditions logicalGrouping="MatchAll">
<add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
<add input="{REQUEST_URI}" matchType="Pattern" pattern="^/api/" negate="true" />
</conditions>
<action type="Rewrite" url="/index.html" />
</rule>
</rules>
</rewrite>
</system.webServer>
</configuration>
我正在使用 IIS Express 10.0(在 Windows 10 预览版中)。我知道 web.config 中的部分仍应存在于 ASP.NET 5 中以配置 IIS,但我没有从中得到任何结果。
我需要使用 IIS Express 做一些不同的事情吗? ASP.NET 5 中是否提供了另一种更通用的解决方案?
谢谢!
web.config
仍然受支持,但它应该进入 wwwroot
文件夹。您可能缺少 Url IIS 重写模块。
或者,您可以编写自定义 OWIN 中间件来支持 html5 路由模式。
看这个例子:
http://geekswithblogs.net/shaunxu/archive/2014/06/10/host-angularjs-html5mode-in-asp.net-vnext.aspx
我正在使用 ASP.NET 5,其中更改了整个文件夹结构并替换了 web.config(与之前的 ASP.NET 版本相比)。我正在使用 angularJS 进行客户端路由,我有这条路线:
.when('/movies/add', {
templateUrl: '/Views/add.html',
controller: 'MoviesAddController'
})
一切正常,只要我从 index.html 开始并单击 link 到 /movies/add。如果我使用 /movies/add URL 重新加载页面,服务器会给我一个 404。根据本教程,我应该在 web.config 中重写,如下所示:
<!-- from -->
<configuration>
<system.webServer>
<modules runAllManagedModulesForAllRequests="true" />
<rewrite>
<rules>
<!--Redirect selected traffic to index -->
<rule name="Index Rule" stopProcessing="true">
<match url=".*" />
<conditions logicalGrouping="MatchAll">
<add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
<add input="{REQUEST_URI}" matchType="Pattern" pattern="^/api/" negate="true" />
</conditions>
<action type="Rewrite" url="/index.html" />
</rule>
</rules>
</rewrite>
</system.webServer>
</configuration>
我正在使用 IIS Express 10.0(在 Windows 10 预览版中)。我知道 web.config 中的部分仍应存在于 ASP.NET 5 中以配置 IIS,但我没有从中得到任何结果。 我需要使用 IIS Express 做一些不同的事情吗? ASP.NET 5 中是否提供了另一种更通用的解决方案?
谢谢!
web.config
仍然受支持,但它应该进入 wwwroot
文件夹。您可能缺少 Url IIS 重写模块。
或者,您可以编写自定义 OWIN 中间件来支持 html5 路由模式。
看这个例子: http://geekswithblogs.net/shaunxu/archive/2014/06/10/host-angularjs-html5mode-in-asp.net-vnext.aspx