首页 > 解决方案 > node.js html-pdf 不从绝对路径加载外部文件

问题描述

在我的应用程序中,由绝对路径提供的外部文件未正确加载,但在我的模板中一切都很好。html-pdf v.2.2.0 https://www.npmjs.com/package/html-pdf/v/2.2.0

我为我的样式模板提供了一个 href,但在将我的 HTML 模板转换为 PDF 文件期间它们没有加载。它似乎有原始风格。图像也是如此,图像的位置只有问号。

<link rel="stylesheet" type="text/css" href="https://api.greenleafpolska.pl/public/sources/index.css">

在我的应用程序中,我通过这些行提供静态文件:

app.use('/public', express.static(path.join(__dirname, 'public')))

生成PDF文件的代码:

app.get("/", (req,res)=>{
    fs.readFile('./template/index_min.html', 'utf8', function(error, data) {
        if (!fs.existsSync(`./tst`)){
            fs.mkdirSync(`./tst`);
        }
        fs.writeFile('./tst/out_min.html', data,
                         function (error){
                if (error) throw error;
            });
        pdf.create(data, { format: 'Letter'})
        .toFile('./tst/' + 1 + '_min.pdf', function(err, result) {
            
            var file = fs.createReadStream('./tst/' + 1 + '_min.pdf');
            var stat = fs.statSync('./tst/' + 1 + '_min.pdf');
            res.setHeader('Content-Length', stat.size);
            res.setHeader('Content-Type', 'application/pdf');
            res.setHeader('Content-Disposition', 'attachment; filename=' + 1 + '_min.pdf');
            
            file.pipe(res);
            

        });
    });
})

还有其他方法可以在模板中提供外部文件吗?我试过“base” html 标签,但结果是一样的。这是图书馆的问题吗?

标签: javascripthtmlcssnode.jshtml-pdf

解决方案


推荐阅读