客户说 PDF 说明书配图全是空白:我顺着一张图,把简历和作品集的坑挨个翻了出来
前阵子帮一个做小产品的朋友弄材料:一份 PDF 版产品说明书,再加一个能在线打开的作品集。我自己翻来覆去检查了好几遍,图都在,就放心发出去了。
结果第二天客户回邮件,语气还算客气,意思是说明书里的配图全是空白框,作品集里有几张也转不出来,让我赶紧看一眼。我第一反应是不信——在我电脑上明明好好的。可等我真顺着一张图往下查,才发现这些“我这能看、对方那不能看”的坑,一个比一个隐蔽。
一、先想复现,结果怎么点都正常
我做的第一件事,是把发出去的文件在自己电脑上重新打开,想学客户的样子点一遍。PDF 双击打开,图一张不少;作品集在浏览器里打开,也都正常。
当时甚至有点想当然地觉得是对方网络不好。好在我多留了个心眼,没急着回邮件,而是开始琢磨一个更根本的问题:这些图,到底是真的“待在文件里”,还是每次打开时临时去别处取的?
想明白这个,后面的事就顺了。
二、第一张图:PDF 里写的是我电脑上的位置
我先查 PDF。用工具把里面的图片清单列出来一看,心里咯噔一下:有几张本该出现的截图,根本不在内嵌清单里。再翻原始导出设置,发现这几张图在 PDF 里记的是我电脑上的位置,长得像 file:///Users/我的用户名/.../01.png。
这就解释了为什么我这能看、客户那不能看。file:/// 指的是“我这台电脑上的某个文件夹”,我自己打开,它当然能顺着路径找到图;可文件一到客户电脑,那台机器里压根没有这个文件夹,图片位置就是空的。说白了,我以为把图“放”进了 PDF,其实只是放了个“去我电脑取图”的便条。
为了确认,我又试了个土办法:把网断掉、换了个平时不怎么用的阅读器再打开这份 PDF。那些真正嵌进去的图照样显示,这几张挂着便条的就彻底露馅了。
三、在线作品集:我这能开、客户那打不开的三个原因
PDF 的问题找到后,我接着查在线作品集。网页这边的图本来就靠地址去取,我顺着“地址在客户那还灵不灵”往下查,翻出三个毛病。
一是本地预览给的错觉。 我在自己电脑上直接双击网页文件打开,地址是 file:/// 开头,图和网页在同一堆文件夹里,看着挺正常。可等传到服务器,网页里写的相对路径要跟着图片一起部署,我有个目录没传全,线上那个位置自然就裂了。
二是防盗链误伤。 几张图我放在开了防盗链的地方,客户从邮件、从别的网页点进来,来源对不上,图就被挡在外面。我自己刚弄完时去访问是放行的,所以一直没发现。
三是带时效的地址。 还有几张图用的是带签名的临时地址,签名里带着有效期,刚生成那阵没问题,隔一阵客户再点开,地址已经过期了。
这三个毛病有个共同点:在我本人、当下、原环境里都正常,专门坑“换个人、换个时间、换个入口”。 防盗链为什么会把邮件和外部页面一起误伤,我后来在 《给博客图配了 Referer 防盗链,先裂图的却是 RSS 和邮件:我把它重新验证了一遍》 里看到了完整的说法。
四、把两种东西分开,重做一遍
查清楚之后,我没再想着“一份设置打天下”,而是把 PDF 和在线作品当两种东西,分别处理。
PDF 说明书这边,我把所有图重新下载成原图,一张一张确保真正嵌进文件,不再留任何指向我电脑的便条;导出后专门断网、换阅读器、还发到自己手机上各开一次。
在线作品集这边,我把图片和网页一起重新部署,挨个核对路径;那些会挑来源、带有效期的地址都换掉,改成不依赖登录、不挑入口的稳定地址,再用隐身窗口和手机流量分别试,确认换个陌生环境也能打开。
为了让两边都省事,我把所有成品图先归到一个固定的图片托管位置,PDF 从这儿取原图嵌入,网页从这儿引用地址,图源只在这维护一份。这个位置用什么其实不挑,自己搭对象存储再套 CDN 也行,用顺手的同类服务也行;我自己图省事,长期把成品放在图床小镇,纯粹是用习惯了,换个同样条件的地方,做法一点不变。
五、后来固定下来的小习惯
打那以后,凡是要往外发带图的材料,我都养成了几个固定动作:
- PDF 先断网、换阅读器打开,确认图是真嵌进去的,没有
file:///这类本地便条; - 在线作品一定去服务器上、而不是本地双击确认,路径和图片一起部署;
- 图片地址贴到隐身窗口、手机流量里各试一次,看它是不是非登录、非特定来源不可;
- 凡是带签名、带有效期的地址都警惕,确认对方查看时不会刚好过期;
- 发出前再整体翻一遍,专门找“只有我这能看”的图。
材料当天重发给客户后,对方再没说图片有问题。这件事给我的教训挺简单:在自己电脑上一切正常,恰恰是最不可靠的保证;真正要确认的,是图到了一个完全陌生的环境里,还能不能稳稳地显示出来。
浙公网安备 33010602011771号