是否可以将相对URL提供给Phantom.js页面生成器以获取PDF呈现?

时间:2014-11-28 08:51:16

标签: javascript node.js express pdf-generation phantomjs

我目前拥有的是这个剧本:

var phantom = require('phantom');

phantom.create(function(phantomInstance) {
    phantomInstance.createPage(function(page) {
        page.set('paperSize', {
            format: 'A4',
            orientation: 'portrait',
            margin: '1cm'
        });
        page.open('https://blablabla.c9.io/pdf/' + data._id + data.querystring, function(status) {
            page.render('client/pdf/' + data._id + '.pdf', function() {
                phantomInstance.exit();
            });
        });
    });
});

我在Phantom.js文档中读到page.open的第一个参数必须是绝对URL。由于我有两个运行此脚本的环境(Cloud9 IDE上有一个开发,VPS上有一个开发),因此不太舒服。

是否有更好的方法来处理此限制,是否有办法在不手动管理网址的情况下操作相对网址(例如page.open(baseUrl + '...', ...))?

如果有帮助,我在两个环境中使用Express over Node.js服务器。

1 个答案:

答案 0 :(得分:1)

不,我不会发现动态生成您的网址存在任何相当大的问题(例如page.open(baseUrl + '...', ...))。

你可以创建自己的小包装器,但需要以某种方式将baseUrl和相对路径输入它,这可能会使你的生活在短期内变得更容易,但是当你需要重构时,可能会在长期内适得其反