Salesforce apex:image图片加载失败 恳请协助排查原因
问题描述
我创建了一个可生成带Logo和签名的PDF文件的Visualforce模板,但从昨日起模板中的Logo图片无法显示。先后尝试了以下两段代码,均无效果:
<apex:image value="https://c.fra32.content.sfdc-urlt2q.force.com/servlet/servlet.ImageServer?id=015b0000001kbLy&oid=00Db0000000ImQQ&lastMod=118425000&InstHostname=c.eu2.content.force.com"/>
<img src="https://c.eu2.content.force.com/servlet/servlet.ImageServer?id=015b0000001kbLy&oid=00Db0000000ImQQ&lastMod=1440418425000" />
查阅了Visualforce开发者指南后仍未找到原因,需要协助排查问题根源。
排查步骤
- 验证图片URL可访问性:直接将两个URL复制到浏览器中打开,确认是否能正常显示图片。若无法访问,说明图片资源本身存在问题(如记录被删除、权限不足或实例域名变更)。
- 检查Document记录核心设置:图片ID为
015开头(对应Salesforce Document对象),需确认该Document记录的Externally Available Image选项是否已勾选。此选项未开启时,PDF渲染服务无法加载该图片。 - 确认用户权限配置:确保生成PDF的运行用户(如Visualforce页面访问用户)对该Document记录拥有读取权限,同时检查Document所在文件夹的共享设置是否允许该用户访问。
- 统一实例域名参数:第一个URL同时出现
fra32域名和InstHostname=c.eu2.content.force.com,存在实例域名冲突。尝试简化URL,去掉冗余参数,使用相对路径或匹配当前实例的域名:
或使用当前实例的正确完整域名(如<apex:image value="/servlet/servlet.ImageServer?id=015b0000001kbLy&oid=00Db0000000ImQQ"/>c.fra32.content.sfdc-urlt2q.force.com),移除InstHostname参数。 - 排查实例迁移或域名变更:若近期Salesforce实例有迁移(如从eu2转到fra32),旧实例域名可能已失效,需确认当前实例的正确域名并更新URL。
- 检查PDF渲染安全限制:在Salesforce设置中,确认
PDF渲染服务相关配置是否正常,是否有安全策略(如内容安全策略)限制了图片资源的加载。
内容的提问来源于stack exchange,提问作者Julio Ludovic Ramihone
相关产品推荐
相关产品推荐

