npm 僵尸将 <head> 内容放入 <body>
npm zombie putting <head> contents inside <body>
我正在使用 zombie to generate HTML snapshots for my MEAN stack single page application, following this tutorial by 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 内容,为什么 zombie 将其移出?
这是由于僵尸依赖项 jsdom 中的一个错误。 jsdom < v2.0 的某些 html 功能存在问题。 jsdom版本在僵尸版本3.0.1-0更新。使用 npm 将 zombie 更新到 3.0.1-0 或更高版本。
npm install zombie@3.0.11.0
当前最新版本。
相关 GitHub 问题:https://github.com/assaf/zombie/issues/847
我正在使用 zombie to generate HTML snapshots for my MEAN stack single page application, following this tutorial by 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 内容,为什么 zombie 将其移出?
这是由于僵尸依赖项 jsdom 中的一个错误。 jsdom < v2.0 的某些 html 功能存在问题。 jsdom版本在僵尸版本3.0.1-0更新。使用 npm 将 zombie 更新到 3.0.1-0 或更高版本。
npm install zombie@3.0.11.0
当前最新版本。
相关 GitHub 问题:https://github.com/assaf/zombie/issues/847