npm僵尸放置<头部><身体>

npm zombie putting <head> contents inside <body>

本文关键字:gt lt 身体 头部 僵尸 npm      更新时间:2023-09-26

我正在使用僵尸为我的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标签中的head内容正确完成的,那么僵尸为什么要把它移走呢?

这是由于僵尸依赖项jsdom中的一个错误造成的。jsdom<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