为了账号安全,请及时绑定邮箱和手机立即绑定

如何在HTML 5模式下配置URL重写AngularJS应用程序的IIS?

如何在HTML 5模式下配置URL重写AngularJS应用程序的IIS?

RISEBY 2019-07-08 16:42:15
如何在HTML 5模式下配置URL重写AngularJS应用程序的IIS?我有AngularJS种子项目我补充说$locationProvider.html5Mode(true).hashPrefix('!');到app.js文件。我想将IIS 7配置为将所有请求路由到http://localhost/app/index.html所以这个对我有用。我该怎么做?最新情况:我刚刚发现,下载并安装了IISURL重写模块希望这能让我的目标变得简单明了。更新2:我想这概括了我想要达到的目标(从AngularJS开发人员文档):使用这种模式需要在服务器端重写URL,基本上您必须重写到应用程序入口点的所有链接(例如index.html)。更新3:我还在做这方面的工作,我意识到我不需要重定向(有重写规则)某些URL,例如http://localhost/app/lib/angular/angular.jshttp://localhost/app/partials/partial1.html因此,CSS、js、lib或Parals目录中的任何内容都不会被重定向。其他一切都需要重定向到app/index.html有人知道如何轻松地实现这一点,而不必为每个文件添加规则?更新4:IISURL重写模块中定义了两个入站规则。第一条规则是:第二条规则是:现在,当我导航到localhost/app/view 1时,它会加载页面,但是支持文件(CSS、js、lib和Parals目录中的文件)也会被重写到app/index.html页面-因此,无论使用什么URL,所有内容都将作为index.html页面返回。我想这意味着我的第一条规则,即防止这些URL被第二条规则处理的规则,是不起作用的。有什么想法吗?.有人吗?.我觉得很孤独.-(
查看完整描述

3 回答

?
呼唤远方

TA贡献1856条经验 获得超11个赞

问题中所示的IIS入站规则确实有效。我必须清除浏览器缓存,并在<head>节的index.html页:

<base href="/myApplication/app/" />

这是因为本地主机中有多个应用程序,因此对其他部分的请求被转到localhost/app/view1而不是localhost/myApplication/app/view1

希望这能帮到别人!


查看完整回答
反对 回复 2019-07-08
?
白衣非少年

TA贡献1155条经验 获得超0个赞

在我的例子中,在设置正确的重写规则之后,我一直得到403.14。结果发现,我有一个与我的URL路由之一同名的目录。一旦我删除了IsDirectory重写规则,我的路由就可以正常工作了。是否存在删除目录否定可能导致问题的情况?我想不出我的案子里有什么。我唯一能想到的情况是你是否可以用你的应用程序浏览一个目录。

<rule name="fixhtml5mode" stopProcessing="true">
  <match url=".*"/>
  <conditions logicalGrouping="MatchAll">
    <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
  </conditions>
  <action type="Rewrite" url="/" /></rule>


查看完整回答
反对 回复 2019-07-08
  • 3 回答
  • 0 关注
  • 721 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信