我正在使用ASP.NET 5,其中整个文件夹结构已更改,并且web.config已被替换(与以前的ASP.NET版本相比).我正在使用angularJS进行客户端路由,我有这条路线:
.when('/movies/add',{ templateUrl: '/Views/add.html',controller: 'MoviesAddController' })
一切都像我在index.html上开始一样长,并点击指向/ movies / add的链接.如果我使用/ movies / add URL重新加载页面,服务器会给我一个404.根据本教程,我应该在web.config中进行重写,如下所示:
<!-- from https://stackoverflow.com/questions/25916851/wrapping-staticfilemiddleware-to-redirect-404-errors --> <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文件夹.您可能缺少IIS的Url Rewrite模块.
或者,您可以编写自定义OWIN中间件来支持html5路由模式.
请看这个例子:
http://geekswithblogs.net/shaunxu/archive/2014/06/10/host-angularjs-html5mode-in-asp.net-vnext.aspx
原文地址:https://www.jb51.cc/angularjs/240599.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。