使用 AngularJS ui-router 深度链接到 URL 的问题
Problems with deep linking to URL with AngularJS ui-router
我刚刚遇到了一个问题,这个问题似乎是由于我更改了应用程序的文件夹结构而发生的(但我认为这是一个"红鲱鱼")。我有一个小型的AngularJS应用程序,为了整理东西,我将一部分功能移动到了它自己的文件夹中。我更新了$stateProvider
部分中的所有<script>
标签引用、所有视图templateUrl
值......我没有收到 404 错误,所有控制器和视图都已加载,但我注意到在我的应用程序中我无法直接链接到特定的 URL(我以前可以)。我希望直接/深层链接到的 URL 是 http://myapp.com/an/membership
当我在浏览器中输入此内容时,出现GET http://myapp.com/an/membership/ 403 (Forbidden)
错误。该路由有 4 个子状态/URL。我可以深入链接到所有这些。更糟糕的是,如果我的应用程序中有一个链接(使用 ui-sref
),我可以毫无问题地链接到我的状态/网址......这是我的状态/路由代码...我添加了一些评论来解释我的问题...
/* This is the parent state of my membership state !! */
.state('sfm.in', {
abstract: true,
url: '/an/',
templateUrl: '/an/views/member-home/member-home-wrapper.html'
})
/* here the url is http://myapp.com/an/membership - I can link to it using ui-sref but can't deep link, I get a "403 forbidden", everything loads as expected (not sure if I need the abstract). */
.state('sfm.in.membership', {
url: 'membership',
templateUrl: '/an/membership/views/membership.html',
controller: 'MembershipCtrl',
abstract: true
})
/* this child state is a default and has the same URL as the parent - http://myapp.com/an/membership*/
.state('sfm.in.membership.advantages', {
url: '',
templateUrl: '/an/membership/views/membership-advantages.html'
})
/* No problem with deeplinking - http://myapp.com/an/membership/payment */
.state('sfm.in.membership.payment', {
url: '/payment',
controller: 'MembershipPaymentCtrl',
templateUrl: '/an/membership/views/membership-payment.html'
})
/* No problem with deeplinking http://myapp.com/an/membership/account */
.state('sfm.in.membership.account', {
url: '/account',
controller: 'MembershipAccountCtrl',
templateUrl: '/an/membership/views/membership-account.html'
})
/* No problem with deeplinking http://myapp.com/an/membership/data */
.state('sfm.in.membership.data', {
url: 'data',
controller: 'MembershipDataCtrl',
templateUrl: '/an/membership/views/membership-data.html'
});
我已经在我的应用程序中正确设置了$locationProvider.html5Mode
(因为我可以深度链接,在浏览器中键入其他 URL 的 URL)。
任何人都可以在这里看到问题吗?*更新*我已经在路由示例中添加了父状态,请参阅第一个答案中的评论!
你在第一个状态中忘记了'/':
.state('sfm.in.membership', {
url: '/membership',
templateUrl: '/an/membership/views/membership.html',
controller: 'MembershipCtrl',
abstract: true
})
这看起来很奇怪,但我认为问题是当我输入 url 时浏览器在前面。我终于因此更改了代码...但是这里没有真正的变化...我认为浏览器是问题所在。与此同时,我更改了URL,但清理历史记录/缓存也可以解决问题。
.state('sfm.in.membership', {
abstract: true,
url: 'member-ship',
templateUrl: '/an/membership/views/membership.html'
})
.state('sfm.in.membership.advantages', {
url: '',
templateUrl: '/an/membership/views/membership-advantages.html'
})
.state('sfm.in.membership.payment', {
url: '/payment',
controller: 'MembershipPaymentCtrl',
templateUrl: '/an/membership/views/membership-payment.html'
})
.state('sfm.in.membership.account', {
url: '/account',
controller: 'MembershipAccountCtrl',
templateUrl: '/an/membership/views/membership-account.html'
})
.state('sfm.in.membership.data', {
url: '/data',
controller: 'MembershipDataCtrl',
templateUrl: '/an/membership/views/membership-data.html'
})
- 表单提交问题,如何在我的URL末尾获得ID的值
- 在 UIWebview 中加载带有帖子的 URL 时出现问题
- url的正则表达式有问题
- 有角度的seo友好URL和页面重新加载问题
- 使用jquery从URL中删除查询字符串(处理问题)
- 将 SVG 转换为图像时画布到 URL 功能出现问题
- 替换 URL 字符串中的撇号时出现问题
- 使用 window.open in JavaScript 的 URL 中的“/”问题
- 加载内联 SVG 时填充(url#)出现问题
- 基于 id 访问 url 时存在角度路由问题
- Ajax调用MVC控制器-URL问题
- angularjs中的波斯语URL问题
- 没有获取正确的url问题
- 从URL问题中获取模型
- javascript中的散列url问题
- 文档.IE中的url问题
- Url问题,无法检索?在地址栏中加载页面后tema=79
- JSF2.0 URL问题-来自JavaScript资源中的图像
- 如何解决ASP.使用子目录时,NET相对url问题
- Greybox图片未加载可能的URL问题