Что в итоге сработало для меня, так это использование встроенной функции Puppeteers
для установки стилей для страницы:
await page.addStyleTag({ path: './public/css/style.css'});
Это означает, что я мог также избавиться от всего кода express. Итак, мой окончательный рабочий код выглядел так:
const puppeteer = require('puppeteer');
const fs = require("fs");
const handlebars = require("handlebars");
(async () => {
let browser = null;
const file = fs.readFileSync('./templates/template.hbs', 'utf8');
const template = handlebars.compile(file);
const html = template({});
browser = await puppeteer.launch({
headless: false,
devtools: true
});
const page = await browser.newPage();
await page.setContent(html);
await page.addStyleTag({ path: './public/css/style.css'});
})();
Возможно, вам придется использовать path
, но, как и мне, в моем основном проекте, чтобы получить правильный путь к CSS. Вот так:
await page.addStyleTag({ path: path.join(__dirname, '/public/css/style.css') });