0

以下是我当前的代码, https://github.com/daslicht/kiss

将其克隆到我的服务器后,我添加了可蜘蛛包并将 phantomjs 添加到 $PATH。

我的应用程序的基本结构本质上是一个主详细信息布局,左侧是标题列表(主),右侧是每个标题的相应详细信息。

到目前为止一切顺利......,当我调用一页时:

http://78.47.126.11:3000/?_escaped_fragment_=blog/SbZayHyqKmZhCEHme/1

我显示了我的标题,但没有显示相应的详细信息。

你知道可能出了什么问题吗?

目前它与永远捆绑在一起运行。

最好的问候马克

4

2 回答 2

0

如果认为 Spiderable 包不会显示来自 MongoDB 的内容,只会显示静态模板内容。

所以在这个例子中,只有静态的东西会显示,而不是 DB-loop:

<template name="main">

   {{> thisWillBeOutputted}}

</template>

<template name="thisWillBeOutputted">

   <h1>This will be displayed, sweet!</h1>

   {{#each thisLoopFetchesStuffFromDBAndWontShow}}

      <!-- stuff in this loop won't be displayed :( -->

      <p>Something which won't be displayed: {{dbDoc.something}}</p>

   {{/each}}

</template>

总结一下(我认为是正确的):
Spiderable 包比不为机器人显示任何东西要好(vanilla-meteor 就是这种情况),但它不如旧的 PHP/whatever-site 好。

编辑

我误解了你的问题。我要做的是添加<meta name="fragment" content="!">到您的脑海中,而不是使用逃逸片段。更多信息:https ://developers.google.com/webmasters/ajax-crawling/docs/getting-started

不过,我仍然很确定您的数据库内容不会被 Google 接收。但我可能是错的!

于 2013-06-24T19:48:09.973 回答
0

如果我理解,您的应用程序将忽略“blog/SbZayHyqKmZhCEHme/1”。错误是因为: https ://github.com/meteor/meteor/issues/487

spiderable 包当前不会将转义的片段重新附加到发送到 phantomjs 的 url 上,因此页面不可能显示正确的内容。

例如,如果 googlebot 遇到一个 url:

http://domain.com/#!page

它将向服务器发出请求:

http://domain.com/?_escaped_fragment_=page

然而目前,spiderable 包将使用以下 url 调用 phantomjs:

http://domain.com/

我的解决方案是通过“ https://gist.github.com/4096777 ”创建您自己的可爬取程序包

于 2014-02-18T21:07:26.530 回答