首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >单页应用的版本控制和路由?

单页应用的版本控制和路由?
EN

Stack Overflow用户
提问于 2011-11-07 11:14:53
回答 2查看 844关注 0票数 0

背景

我正在开发一个教育性的JavaScript应用程序/站点(SPA),它最终将有1000 s的动态urls,我想让它们可以爬行。

我现在正在研究如何实现版本控制、路由和seo (和i18n)

我的总体想法是使用hashbang并拥有如下资源:

代码语言:javascript
复制
example.com/#!/v1?page=story1&country=denmark&year=1950

这里的"page“参数决定哪些控制器/视图需要加载,随后的参数可以指示控制器加载相应的内容。

然后,只需替换url的“”部分,就可以处理参数的版本,并为每个版本提供一个特定的路由处理程序映射废弃的参数。

SEO将通过让node.js或其他后端交付内容的“转义片段”版本而得到改进。

i18n也应该由node.js来处理吗?这样,传递给爬虫的东西已经被翻译了吗?

  1. 这是一种可行的方法来实现单页应用程序的版本化和可爬行吗?
  2. ,我现在使用的是Backbone.js,您会添加什么来帮助解决上面的问题?
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-11-07 20:01:25

1)地狱号。(好吧,它可以工作,但是从根本上用哈希邦斯设计应用程序是个坏主意)

2) node.js与骨干是一个很好的组合。就我个人而言,我喜欢在服务器上进行路由/模板处理。

-反对哈什班斯的论点:网上有这么多好的信息,我会听他们的。

这里:http://isolani.co.uk/blog/javascript/BreakingTheWebWithHashBangs

这里:http://www.pixelflips.com/blog/do-clean-urls-still-matter/

这个很棒的图书馆:https://github.com/browserstate/History.js/

库中的wiki页面:https://github.com/browserstate/history.js/wiki/Intelligent-State-Handling

而不是使用该库:StackOverflow(或任何其他具有普通urls的站点)的chrome扩展:https://chrome.google.com/webstore/detail/oikegcanmmpmcmbkdopcfdlbiepmcebg

15个参数是绝对必要的吗?将内容参数(页、国家)放在url中,表示参数(即: sortby=author)放在查询字符串中。

作为对“您仍然被哈希标记序列化所困”的响应,我给出如下内容:

每个路由都应该指向一个有效的资源位置。ie: /v1/page/丹麦/一些-段式邮件应该是一个资源位置,当您将它更改为一个新的post/page时,也应该是一个资源位置。我的意思是,如果您不能使用url对页面进行书签,那么实现就会中断。

此外,你是否计划打破你所有的链接与每一个版本?我不知道你为什么要把版本包括在网址里。

我希望这能帮到你。

票数 2
EN

Stack Overflow用户

发布于 2011-11-07 11:35:23

在回答第一个问题时,要求所有的“页面”都有一个唯一的网址,并且可以在没有JavaScript的情况下找到和查看。

您必须创建一个robots.txt,列出所有唯一的URL,或者在某个地方有一个站点地图,这样爬虫就可以找到所有的URL。

我不清楚在这种情况下你所说的SEO到底是什么意思。这似乎是你的建议,你会给爬虫不同的内容,而不是浏览器。通常不是一个好主意,除非你的网站是如此动态,没有其他办法。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8035674

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档