npm zombie把内容放进去

时间:2015-03-03 21:14:53

标签: javascript html angularjs node.js zombie.js

我使用zombie为我的MEAN堆栈单页面应用程序生成HTML快照,遵循Angular的本教程:http://www.ng-newsletter.com/posts/serious-angular-seo.html

除了一件事,我的快照生成正常。文档<head>的内容位于<body>标记内,我不知道原因。

简而言之,我创建了我的僵尸浏览器:

var browser = new Zombie({
  waitFor: 3000,
  loadCSS: false,
  runScripts: true
});

然后我访问一个页面并看到html:

browser.visit("page-url-here").then(function(){
  console.log(browser.html());
});

我得到了这种结构的输出:

<html>
<head></head>
<body>
meta tags, css links, etc here.
</body>
</html>

这些页面的原始代码是使用head标记内的头部内容正确完成的,那么为什么僵尸会把它移出来?

1 个答案:

答案 0 :(得分:1)

这是由于zombie的依赖,jsdom中的一个错误。 jsdom&lt; v2.0有一些html功能的问题。 jsdom版本在僵尸版本3.0.1-0中更新。使用npm将僵尸更新为3.0.1-0或更高版本。

npm install zombie@3.0.11.0获取当前最新版本。

相关GitHub问题:https://github.com/assaf/zombie/issues/847