You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在转换为PDF的EJS模板中正确插入存储的图片资源

解决方案

1. 修改EJS模板,使用img标签渲染图片

你当前的写法是直接输出图片URL文本,需要替换为HTML的<img>标签才能渲染图片:

<% dataw.data2.forEach(function(a){ %>   
<div class="row">
    <div class="col-sm-6"> 
        <div class="mb-4 pull-left">
            <div>
                <!-- 替换为img标签,src属性填图片URL -->
                <img src="<%= a.graph_img %>" alt="图表" style="max-width: 100%;">
            </div>
        </div>
    </div>
</div>
<% }); %>

如果后续发现URL被转义导致无法访问,可以把<%=替换为<%-输出未转义的内容。

2. 修正图片路径映射错误

你服务端保存图片的路径是./public/images/graph_images,但返回的URL路径是/public/images/graph_images_for_pdf/,两处文件夹名不一致,需要先修正这个问题:

  • 要么修改保存路径的文件夹名为graph_images_for_pdf
  • 要么修改返回的URL路径为/public/images/graph_images/

修正后先在浏览器直接访问图片URL,确认可以正常打开图片,再测试PDF生成。

3. 适配服务端PDF生成工具的路径规则

如果你使用的是服务端PDF生成工具(如Puppeteer、wkhtmltopdf、html-pdf等),localhost域名可能在服务端无法正常解析,可以按优先级选一种方案优化:

  • 把URL中的localhost:5000替换为127.0.0.1:5000
  • 直接返回图片的本地绝对物理路径(如/opt/project/public/images/xxx.jpeg)
  • 不存储图片到本地,直接把base64格式的图片内容放到graph_img字段返回,无需额外路径解析,兼容性最高

内容的提问来源于stack exchange,提问作者fungusblacky

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.29 06:24:05