Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/backbone.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在保持搜索引擎优化的同时使用带有快速和主干的把手_Javascript_Backbone.js_Handlebars.js - Fatal编程技术网

Javascript 在保持搜索引擎优化的同时使用带有快速和主干的把手

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

我试图弄清楚如何在维护SEO的同时使用手柄(在服务器和客户机上)实现主干网

考虑到我有一个RESTful API,其中URL如下所示:

/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模板客户端和服务器。浏览器为用户呈现客户端。服务器为机器人渲染服务器端。