Iis 7 带有路径位置的angular2(而不是哈希位置)

Iis 7 带有路径位置的angular2(而不是哈希位置),iis-7,angular2-routing,Iis 7,Angular2 Routing,我想在angular2中使用无散列(#)的路由策略。 我用的是RouterModule forRoot(路由,{useHash:false,preload策略:preload所有模块}) 现在,我正试图将我的应用程序配置为通过IIS作为应用程序运行,但我无法在浏览器中运行它(无论我是否在url中使用哈希)。 我得到这个错误: vendor.ddeb5398c00029f474f6.bundle.js:20异常:未捕获(承诺中):错误:无法匹配任何路由。URL段:“rren/” 错误:无法匹配任何

我想在angular2中使用无散列(#)的路由策略。 我用的是RouterModule forRoot(路由,{useHash:false,preload策略:preload所有模块})

现在,我正试图将我的应用程序配置为通过IIS作为应用程序运行,但我无法在浏览器中运行它(无论我是否在url中使用哈希)。 我得到这个错误:

vendor.ddeb5398c00029f474f6.bundle.js:20异常:未捕获(承诺中):错误:无法匹配任何路由。URL段:“rren/” 错误:无法匹配任何路由。URL段:“rren/” 在ApplyRedirects.noMatchError()处 在CatchSubscriber.selector上

有人知道我做错了什么吗?如何修复它?有什么想法吗? 我用的是IIS7和nodejs6.2

先谢谢你。
Liran

我尝试在iis 7中安装允许重定向和Url重写的Url重写,但我不确定配置是否正确。是否需要将url从localhost/rren/logon重写为localhost/rren/#/logon?或者我只需要从localhost/rren/logon重写到localhost/rren/index.html?angularyjs是否通过加载index.html启动加载流?它如何知道进入登录页面?这就是我应该使用url重写工具模拟的内容。。再次感谢大家!Lirance您可以使用您目前为路由目的配置的web.config设置片段更新您的问题吗?是的,index.html是应用程序的起点。因此,您在web.config(或global.asax,如果您为此目的设置了一个虚拟的.Net web应用程序)中的URL路由确实需要配置为指向所有路由,例如“localhost/angular app/”、“localhost/angular app/home/dashboard/”或任何其他子路由,以默认为IIS中虚拟应用程序/目录中的index.html。cssnjs资源是个例外。因此,您的配置文件中需要另一个路由规则。此外,我不确定IIS 7是否自动支持URL路由/重写,但如果不支持,则需要设置isapi.dll。无论如何你自己可以很容易地弄明白。网上有很多文章。我通过快速搜索找到了一个: