我有AngularJS种子项目,并添加了
$locationProvider.html5Mode(true).hashPrefix('!');
到app.js文件。我想将IIS 7配置为将所有请求路由到
http://localhost/app/index.html
这样对我有用。我该怎么做呢?
更新:
我刚刚发现,下载并安装了IIS URL Rewrite模块,希望这将使实现我的目标变得容易且显而易见。
更新2:
我想这总结了我要实现的目标(摘自AngularJS Developer文档):
使用此模式需要在服务器端重写URL,基本上,您必须重写指向应用程序入口点的所有链接(例如index.html)
更新3:
我仍在努力,我意识到我不需要重定向(具有重写规则的)某些URL,例如
http://localhost/app/lib/angular/angular.js
http://localhost/app/partials/partial1.html
因此,css,js,lib或partials目录中的所有内容都不会重定向。其他所有内容都需要重定向到app / index.html
任何人都知道如何轻松实现此目标而不必为每个文件添加规则?
更新4:
我在IIS URL重写模块中定义了2个入站规则。第一条规则是:
第二条规则是:
现在,当我导航到localhost / app / view1时,它会加载页面,但是支持文件(css,js,lib和partials目录中的文件)也将被重写到app / index.html页面中,因此一切都来了无论使用什么URL,都返回index.html页面。我想这意味着我的第一个规则(该规则应防止第二个规则处理这些URL)不起作用。...任何人?...我感觉很孤独... :-(
app/index.html
而不是 app/
显式触发为AngularJS服务的页面。在弄清楚之前,我失去了2个小时的生命。:-)