我想在我的Angular 1.4版本中使用Google Puppeteer进行预渲染(服务器端渲染)。
上看到了空白页使用以下代码
(async() => {
const Browser = require('puppeteer');
//const browser = new Browser();
const browser = await Browser.launch({
executablePath: '/usr/bin/google-chrome',
args: ['--no-sandbox', '--disable-setuid-sandbox']
});
const page = await browser.newPage();
await browser.close();
})();
答案 0 :(得分:1)
我没有看到任何代码,你实际上将无头浏览器导航到任何地方,所以尝试:
// declare var document: any; // Typescript
var document; // JS
async function getPage(url) {
const Browser = require('puppeteer');
const browser = await Browser.launch({
executablePath: '/usr/bin/google-chrome',
args: ['--no-sandbox', '--disable-setuid-sandbox']
});
const page = await browser.newPage();
await page.goto(url);
const html = page.evaluate(() => `<html>${document.head.innerHTML}${document.body.innerHTML}</html>`);
await browser.close();
return html;
}
getPage('http://www.browseo.net/').then(html => console.log(html));
如果您想知道document
是什么以及它是如何工作的,那是因为page.evaluate
在无头浏览器窗口的上下文中运行您传递给它的函数,所以这样你可以从那里引用全局变量。