我目前拥有的是这个剧本:
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服务器。
答案 0 :(得分:1)
不,我不会发现动态生成您的网址存在任何相当大的问题(例如page.open(baseUrl + '...', ...)
)。
你可以创建自己的小包装器,但需要以某种方式将baseUrl和相对路径输入它,这可能会使你的生活在短期内变得更容易,但是当你需要重构时,可能会在长期内适得其反