首页 文章

流星 - 幻影渲染公共资产

提问于
浏览
0

我正在开发一个Meteor项目,我需要从页面生成一个部分的PDF导出 . 我使用webshot来生成导出 . 最近的要求是在导出中使用公共静态资产 - 徽标图像 . 我通过阅读所有css文件并将其内容复制到我让webshot使用的HTML文档中的样式标记,努力使css资产可用于phantomjs . 这很好 . 对于图像,我将HTML中的“./images/”模式替换为服务器上images文件夹的完整路径

const buildPath = path.resolve('.').split(path.sep + 'server')[0];
const imagePath = buildPath + '/web.browser/app/images/';

它在服务器上运行 . 图像没有显示出来 . 当我在我的开发机器上的任何地方打开生成的HTML(我保存它以进行调试)时,图像路径被解析得很好,我得到了图像 .

在phantomjs中访问这些静态资产的正确方法是什么?

1 回答

  • 0

    我想出来了 - 我在img标签的src属性中缺少一个完全限定的协议 . 虽然Chrome很聪明且宽容,但phantomjs并非如此 . 所以基本上我必须在图像的完整路径之前添加'file:///' . 它现在看起来像:

    const buildPath = path.resolve('.').split(path.sep + 'server')[0].replace(/\\/g, '/');
    const imagePath = buildPath + '/web.browser/app/images/';
    html = html.replace(/src="\.\/images\//g, 'src="file:///' + imagePath);
    

    至于关于时间的评论,我确实给出了1秒的延迟渲染,但没有检查它是否有效 .

相关问题