背景
我正在开发一个教育性的JavaScript应用程序/站点(SPA),它最终将有1000 s的动态urls,我想让它们可以爬行。
我现在正在研究如何实现版本控制、路由和seo (和i18n)。
我的总体想法是使用hashbang并拥有如下资源:
example.com/#!/v1?page=story1&country=denmark&year=1950这里的"page“参数决定哪些控制器/视图需要加载,随后的参数可以指示控制器加载相应的内容。
然后,只需替换url的“”部分,就可以处理参数的版本,并为每个版本提供一个特定的路由处理程序映射废弃的参数。
SEO将通过让node.js或其他后端交付内容的“转义片段”版本而得到改进。
i18n也应该由node.js来处理吗?这样,传递给爬虫的东西已经被翻译了吗?
发布于 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对页面进行书签,那么实现就会中断。
此外,你是否计划打破你所有的链接与每一个版本?我不知道你为什么要把版本包括在网址里。
我希望这能帮到你。
发布于 2011-11-07 11:35:23
在回答第一个问题时,要求所有的“页面”都有一个唯一的网址,并且可以在没有JavaScript的情况下找到和查看。
您必须创建一个robots.txt,列出所有唯一的URL,或者在某个地方有一个站点地图,这样爬虫就可以找到所有的URL。
我不清楚在这种情况下你所说的SEO到底是什么意思。这似乎是你的建议,你会给爬虫不同的内容,而不是浏览器。通常不是一个好主意,除非你的网站是如此动态,没有其他办法。
https://stackoverflow.com/questions/8035674
复制相似问题