加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

angularjs – ASP.NET 5中的URL重写

发布时间:2020-12-17 10:20:51 所属栏目:安全 来源:网络整理
导读:我正在使用ASP.NET 5,其中整个文件夹结构已更改,并且web.config已被替换(与以前的ASP.NET版本相比).我正在使用angularJS进行客户端路由,我有这条路线: .when('/movies/add',{ templateUrl: '/Views/add.html',controller: 'MoviesAddController' }) 一切都
我正在使用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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读