我正在开发一个教育性的JavaScript应用程序/网站(SPA),它最终将拥有1000个我想要抓取的动态网址。
我正在研究如何实施版本控制,路由和seo(和i18n)。
我的一般想法是使用hashbangs并拥有如下资源:
example.com/#!/v1?page=story1&country=denmark&year=1950
此处的“page”参数决定了需要加载哪些控制器/视图,后续参数可以指示控制器加载相应的内容。
版本化参数可以通过替换url的“v1”部分来处理 - 并且具有特定的路由处理程序映射每个版本的弃用参数。
通过让node.js或其他后端提供内容的“转义片段”版本,可以改善 SEO 。i18n 也可能由node.js处理?这样,传递给爬虫的内容已经被翻译了吗?
答案 0 :(得分:2)
1)地狱没有。 (好吧它可以工作,但从头开始用hashbangs设计你的应用程序是一个坏主意)
2)node.js和backbone是一个很好的组合。就个人而言,我喜欢在服务器上进行路由/模板化。
- 反对hashbangs的论点:网上有很多好的信息我会遵从它们。
此处: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
请查看此chrome扩展程序,该扩展程序将使用该库ajax StackOverflow(或具有普通网址的任何其他网站):https://chrome.google.com/webstore/detail/oikegcanmmpmcmbkdopcfdlbiepmcebg
绝对需要15个参数吗?将内容参数(页面,国家/地区)放在URL和表示中(即:sortby = author)在查询字符串中。
响应“你仍然坚持使用哈希标签序列化”我给出了这个:
每条路线都应指向有效的资源位置。 ie:/ v1 / page / denmark / some-slug-for-post应该是一个资源位置,当你把它改成一个新的帖子/页面时,它也应该是一个资源位置。我所说的是,如果你不能使用url为页面添加书签,那么实现就会被破坏。
另外,您打算打破每个版本的所有链接吗?我不确定你为什么要把这个版本包含在网址中。
我希望这会有所帮助。
答案 1 :(得分:0)
在回答第1项时,要求所有“页面”都有唯一的网址,无需JavaScript即可查找和查看。
你必须制作一个robots.txt,列出你所有的唯一网址,或者在某个地方有一个网站地图,以便抓取工具找到所有网址
在这种情况下,我不确定SEO究竟是什么意思。您似乎建议您为抓取工具提供与浏览器不同的内容。通常不是一个好主意,除非你的网站如此动态,没有别的办法。