javascript – AngularJS UI-Router – 在没有HashBang的HTML5模式下手动键入URL
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了javascript – AngularJS UI-Router – 在没有HashBang的HTML5模式下手动键入URL,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1570字,纯文字阅读大概需要3分钟。
内容图文
我目前正在使用AngularJS和UI-Router进行状态管理,并在后端表达.
我目前启用了哈希爆炸模式,并且一直在尝试找到一种解决方案,允许您在地址栏中手动键入URL而无需哈希爆炸.
例如,而不是键入:
www.mysite.com/#!/page1
我想能够输入
www.mysite.com/page1
我试过启用html5Mode:
$locationProvider.html5Mode(true)
.hashPrefix('!');
但它仍然无效.通过上述更改,单击任何URL将重写并将位置从“#!/ page1”更改为“/ page1”.哪个好.
但是,手动输入带有“/ page1”的URL不起作用,并提供无效的路径错误.如果我用哈希爆炸键入它,即’#!/ page1′,那么它可以工作,并在页面加载后重写URL作为’/ page1′.
那么我在这里做错了什么?
我的州看起来像这样:
state('login', {
url: '/login',
templateUrl: 'login.html'
}).
state('parent', {
url: '/hello',
abstract: true,
template: '<ui-view/>'
}).
state('parent.home', {
url: '',
controller: 'SomeCtrl',
templateUrl: 'page.html'
}).
state('parent.file', {
url: '/bob',
controller: 'SomeCtrl2',
templateUrl: 'file.html'
})
解决方法:
更新:
您的代码对我来说很好,我将失去经验,并认为这是一个服务器问题.
有几种方法可以解决这个问题,但据我所知它们只是服务器端.
using AngularJS html5mode with nodeJS and Express
How do I configure IIS for URL Rewriting an AngularJS application in HTML5 mode?
你不能直接去路线的原因 – mywebsite.com/page1是因为角度应用程序本身(位于index.html页面上)需要拦截/引导你到mypage.这就是为什么你看到页面本身永远不会重新加载,视图只是在你的应用程序中发生变化.您也可以通过刷新页面来测试它.
你需要实现一些服务器端,它接受你的请求(IE:/ page1)并将所有请求路由到index.html,Angular将负责其余的工作.
另外:当你使用#/ page1时,你仍然在请求你的索引页面,angular会识别#和相应的路由
编辑:附加信息
内容总结
以上是互联网集市为您收集整理的javascript – AngularJS UI-Router – 在没有HashBang的HTML5模式下手动键入URL全部内容,希望文章能够帮你解决javascript – AngularJS UI-Router – 在没有HashBang的HTML5模式下手动键入URL所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。