Javascript 在保持搜索引擎优化的同时使用带有快速和主干的把手
我试图弄清楚如何在维护SEO的同时使用手柄(在服务器和客户机上)实现主干网 考虑到我有一个RESTful API,其中URL如下所示:Javascript 在保持搜索引擎优化的同时使用带有快速和主干的把手,javascript,backbone.js,handlebars.js,Javascript,Backbone.js,Handlebars.js,我试图弄清楚如何在维护SEO的同时使用手柄(在服务器和客户机上)实现主干网 考虑到我有一个RESTful API,其中URL如下所示: /api/submissions/:type?/:category?:offset?:limit? 当有人点击mydomain.com/时,它会在此处初始化我的主干: var site = window.site || {}; site.FeedSubmission = Backbone.Model.extend({ }); site.Fe
/api/submissions/:type?/:category?:offset?:limit?
当有人点击mydomain.com/
时,它会在此处初始化我的主干:
var site = window.site || {};
site.FeedSubmission = Backbone.Model.extend({
});
site.FeedSubmissions = Backbone.Collection.extend({
model: site.FeedSubmission,
url: '/api/submissions/?type=tip&offset=0,30'
});
site.FeedSubmissionView = Backbone.View.extend({
initialize: function() {
console.log(this.collection);
}
});
var submissions = new site.FeedSubmissions();
submissions.fetch({
success: function(coll, res, options) {
var feedSubmissionView = new site.FeedSubmissionView({
collection: submissions
});
feedSubmissionView.render();
},
error: function(coll, res, options) {
console.log('woops')
}
});
var feedSubmissionView = new site.FeedSubmissionView({
collection: submissions
});
这可以使用my collection来实例化视图,但如果搜索引擎尝试为站点编制索引,显然会造成麻烦,因为视图的呈现是用JS完成的
基本上,我希望两者兼得:我希望使用主干网,但也希望从为搜索引擎提供html服务中获得好处。我不会仅仅为了向搜索引擎提供我的内容而开发一个phantomjs实例或一些无头浏览器。主要是因为它的开销太大,顶多也太薄
我需要做什么?将数据引导到一些json中,并将其转储到页面中,然后覆盖主干网的
获取
和同步
来填充模型/集合?您可以阅读和@jfriend00一个是付费选项(不使用),另一个是使用我不喜欢的选项(谷歌机器人的无头浏览器重定向)。如果您正在客户端上用JS构建内容,搜索引擎将无法看到它,除非您在被搜索引擎访问时重定向到服务器上构建内容。只要您构建的内容相同(只是在服务器端),搜索引擎就允许这样做。LinkedIn就是这样做的,它使用服务器端JSON和客户端模板为普通浏览器呈现页面,并在服务器端为搜索机器人生成相同的页面。没有其他神奇的选择。大多数爬虫程序都不运行客户端JS,因此只有在内容呈现在服务器端时,才会对其进行索引。Meh LinkedIn使用dust,它与把手非常相似,只是有点像薄片(我经常使用它)。我将只使用手柄,并在客户端和视图之间共享模板(将下划线模板替换为手柄)。我将把我的数据引导到一些json中,然后在服务器上为每个页面加载呈现模板,然后让主干网接管。你所说的正是我解释LinkedIn所做的——它们使用相同的json和相同的Dust模板客户端和服务器。浏览器为用户呈现客户端。服务器为机器人渲染服务器端。