加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

angularjs – 单页应用程序应该如何提供永久链接?

发布时间:2020-12-17 10:23:38 所属栏目:安全 来源:网络整理
导读:为通过单页面应用程序管理的资源提供可公开访问的URL有哪些约定?我认为这是一个建筑设计问题,但我预计会在AngularJS中开发SPA,以防万一.我是SPA的新手. 用户将通过SPA创建,查看和修改各种类型的资源(例如,基于服务器的对象).通过永久链接URL,公众也可以访问
为通过单页面应用程序管理的资源提供可公开访问的URL有哪些约定?我认为这是一个建筑设计问题,但我预计会在AngularJS中开发SPA,以防万一.我是SPA的新手.

用户将通过SPA创建,查看和修改各种类型的资源(例如,基于服务器的对象).通过永久链接URL,公众也可以访问这些相同的资源.我很好用SPA在访问资源的永久链接URL时为访问者显示资源.

我只能想到这两种方法:

>将所有资源放在http://example.com/resourcetype/resourceID,在此处实现RESTful API(改变HTTP方法).
>将所有永久链接放在http://example.com/resourcetype/resourceID,并使SPA命中http://example.com/api/resourcetype/resourceID.

(在/ api下使用永久链接似乎不合理.通过“永久链接”,我只是指资源的公共未登录URL.)

我希望通过SPA导航到资源的用户到达可共享的URL,因为想要共享该页面的用户首先想要共享其URL,而不是首先找到指向永久链接页面的链接.这表明采用第一种方法,但第二种方法更适合通过诸如/ api / v1,/ api / v2等URL进行API版本控制.

避免URL中的哈希是理想的.我知道我可以在AngularJS中使用HTML5模式在支持该模式的浏览器中隐藏它们.这也需要服务器端支持,我已经看到了将深层链接重写为SPA访问URL链接的解决方案.

我想知道人们在做什么,以及人们是否发现自己在实践中限制了SPA的使用.谢谢你的帮助!

在我们的办公室,我们同时使用resourceIds和slug.任何可共享资源都将具有由资源模型的属性生成的slug属性.例如,任何为我们的SPA撰写文章的人都必须给文章一个标题.服务器在保存时验证该标题,以确保没有其他文章包含相同的标题.如果标题是唯一的,则为该资源生成一个slug并保存到我们的DB中,否则服务器会响应一条错误消息,指出标题不是唯一的.

然后在我们的状态声明中,当用户访问http:// example / articles / article-slug时,我们在API中查询与article-slug匹配的文章,如果没有找到文章则返回404.

.state('app.articles.article',{
            url: '/:slug',views: {
                articles: {
                    templateUrl: tpl + 'views/frontend/articles.article.html',controller: 'ArticleCtrl',resolve: {
                      article: ['$stateParams',function ($stateParams) {
                            var slug = $stateParams.slug;
                            // query API for slug
                      }]
                    }
                }
            }
        })

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读