我使用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标记内的头部内容正确完成的,那么为什么僵尸会把它移出来?
答案 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