相关疑难解决方法(0)

如何在HTML5模式下为URL重写AngularJS应用程序配置IIS?

我有AngularJS种子项目,我已经添加了

$locationProvider.html5Mode(true).hashPrefix('!');
Run Code Online (Sandbox Code Playgroud)

到app.js文件.我想配置IIS 7以将所有请求路由到

http://localhost/app/index.html
Run Code Online (Sandbox Code Playgroud)

这对我有用.我该怎么做呢?

更新:

我刚刚发现,下载并安装了IIS URL Rewrite模块,希望这样可以轻松,明显地实现我的目标.

更新2:

我想这总结了我想要实现的目标(取自AngularJS Developer文档):

使用此模式需要在服务器端重写URL,基本上您必须重写所有链接到应用程序的入口点(例如index.html)

更新3:

我还在努力,我意识到我不需要重定向(有重写规则)某些URL,例如

http://localhost/app/lib/angular/angular.js
http://localhost/app/partials/partial1.html
Run Code Online (Sandbox Code Playgroud)

所以css,js,lib或partials目录中的任何内容都不会被重定向.其他所有内容都需要重定向到app/index.html

任何人都知道如何轻松实现这一点,而无需为每个文件添加规则?

更新4:

我在IIS URL重写模块中定义了2个入站规则.第一条规则是:

IIS URL重写入站规则1

第二条规则是:

IIS URL重写入站规则2

现在,当我导航到localhost/app/view1时,它会加载页面,但是支持文件(css,js,lib和partials目录中的文件)也被重写到app/index.html页面 - 所以一切都将到来无论使用什么URL,都返回index.html页面.我想这意味着我的第一条规则,即应该阻止这些网址被第二条规则处理,不起作用..任何想法?...任何人?...我感觉很孤单... :-(

iis url-rewriting angularjs

136
推荐指数
4
解决办法
11万
查看次数

ExpressJS中的AngularJS路由

我在带有ExpressJS的NodeJS服务器上有一个AngularJS应用程序.现在我将Angular应用程序作为静态文件提供服务:

app.use(express.static(__dirname + '/app'));
Run Code Online (Sandbox Code Playgroud)

但在导航方面,我有一个#符号:

http://127.0.0.1:8080/#/queryes
Run Code Online (Sandbox Code Playgroud)

为了解决这个问题,我把这段代码放在Angular Router中:

$locationProvider.html5Mode(true);
Run Code Online (Sandbox Code Playgroud)

但现在我无法获得部分观点.如何将Angular Routes与ExpressJS混合使用?

express angularjs

5
推荐指数
1
解决办法
7041
查看次数

Angular ui-router按下刷新会导致404错误

好的,我知道这是一个开放式的问题,但是 -

我正在使用AngularJS 1.4.x和ui-router运行应用程序.在大多数情况下,一切正常并且如预期的那样.我的各个页面使用ui-sref来导航,页面按预期显示,并且显示的URL看起来正确.但是,如果我在任何页面上刷新页面(F5),则会导致404错误.输入URL不再有效.

可能涉及的事情:

  • 我打开了$locationProvider.html5Mode(true)旗帜
  • 我用

    $ rootScope.$ on('$ stateChangeStart',function(event,toState,toParams)

    管理页面访问(身份验证)

  • <base href="/"> 在我的index.html中,因为没有它,html5Mode()将无法工作

angularjs angular-ui-router

4
推荐指数
1
解决办法
4962
查看次数