我一直使用Backbone的路线(#!/ blah)
但我意识到,为了获得Google的索引,您需要提供该网站的非JavaScript版本。
我不喜欢两次写代码。所以,我宁愿构建一个多页面的应用程序,而不是单页面的Web应用程序。
Backbone.js为我提供了“结构”,所以我的javascript不会变成sphagetti混乱。但是,我完全不知道如何使用Backbone构建多页面应用程序。
您是否在每个页面渲染中都包含main.js文件?路线怎么样?你怎么处理那件事呢?你如何应对模块化等?
我希望有一个关于如何使用Backbone构建多页面javascript应用程序的教程。
答案 0 :(得分:2)
做这样的事情需要考虑很多因素,但这里有两个关键点:
您可能希望让您的Web服务器将所有内容路由到服务相同的静态页面(假设它是静态资产)。这意味着http://yourdomain.com/*
中的所有内容都将投放/var/www/yourdomain.com/index.html
。加载静态页面后,该页面上的JS将决定给定URL的操作。
要进行路由,您仍然可以使用骨干路由,但不要使用hashbangs(#!/blah
样式网址)。例如,请参阅http://backbonejs.org/#History。这将允许您导航到真实的URL,而无需实际需要页面刷新。如果浏览器不支持pushState,一切仍然有效,但它会重新加载页面。
答案 1 :(得分:0)
@Jamie Wong的回答让你走的路。通过使用pushState而不是基于散列的URL,Google应将每条路由视为不同的页面。但是,由于我假设每条路线的内容都是动态生成的,因此我不清楚Google是否会获取所有内容。谷歌绝对有能力访问动态内容,如上面提到的@Domenic,但问题是:
1)他们可以访问多少?
2)他们是否尝试尽可能多地访问所有网站,或者只访问Facebook等大型数据网站?
您可以尝试为每个视图提供默认数据,然后在基于用户行为的动态内容中进行分层。 Backbone称之为bootstrapping。 http://backbonejs.org/#FAQ-bootstrap