我把那台旧 Air 连上电源,打开 Safari 14.1.2,地址栏里输入的是一个本地路径,指向 2022 年 3 月我从一个学术论坛附件里解压出来的图库索引。那个页面在 Chrome 里还能凑合看,缩略图至少能出来一半,但在 Safari 下,几乎每张图片都变成了一个带问号的方块,右下角显示一个红色的“×”,像一排被划掉的笔记。我数了一下,大概有 140 多张图,全是田野调查时拍的档案卡片,卡片上抄着不同地区的碑刻编号。这不算是多大的数据量,但 Safari 对本地文件路径的处理确实比 Chromium 系要保守,跨目录引用基本都会触发 CORS 限制。

那一刻我反而有点高兴,因为问题很具体。

我打开开发者工具,在 Console 里看到十几条“Not allowed to load local resource”的警告,几乎全指向同一个子目录 `/images/scans/`。这就有意思了——我从前一直以为“在浏览器打开49图库”这个动作只是一个简单的双击 HTML 文件,但实际操作起来,浏览器对本地资源的访问权限、索引文件的编码声明、甚至图片路径中是否含有中文字符,都会影响最终能不能看到图。那天下午我花了将近五十分钟只做了一件事:把索引文件里所有相对路径改成以 `./` 开头的站内绝对路径,然后把 HTML 文件的编码从 GBK 改成了 UTF-8,图片才终于一张一张地刷出来。总共 143 张,最后加载成功的是 141 张,剩下两张的原始文件本身就已经损坏了。这个数字我记得很清楚,因为我在一个旧笔记本上写下了“143→141”。

这让我重新理解了“打开”这个词的重量。

很多文献里讨论数字档案的时候,习惯把“可访问”挂在嘴边,仿佛只要文件还在服务器上、链接还没失效,就算完整。但我做独立写作这几年,越来越觉得“可访问”是一个多层次的命题。我认识的一位古籍数字化研究者,姓沈,沈老师,在中山大学做碑帖整理,他曾经在一次内部讨论里说得很直接:“同一个索引文件,在 Chrome 里打开和在 Safari 里打开,看到的不一定是同一批资料。”他说的就是这种跨浏览器的渲染差异。我并不是想说浏览器有好坏之分,而是想指出一个被忽略的事实:图库作为一种资料形态,它的完整性并不只存在于文件本身,还存在于“浏览器的解释”里。换句话说,如果你只是把文件放在那里,却没有验证过它在不同浏览器里的加载行为,那么所谓“在浏览器打开49图库”这个动作,可能只是完成了一半。

说到资料归档,我前阵子还花了几个晚上整理旧的索引文件,顺便把一些失效的路径重新指向了可用的镜像。如果你也在处理类似的事情,可以参考我先前写的恢复旧版资料图库,那里面记录了更完整的路径修复流程。另外,最近我在跟踪一个跨平台图库的版本变化,澳门那边的公开索引在浏览器兼容性上有一些值得注意的调整,具体可以看澳门49最新资料图库这篇。还有一个比较常被问到的问题是本地下载版本怎么在浏览器里直接加载,我整理在49tk资料图库下载里,算是一个操作性的补充。

说实话,这件事让我对“浏览器打开”这个说法有了一点怀疑。

我不太喜欢那些把数字图库说得像万能钥匙一样的论调。浏览器只是一个解释器,它并不保证资料本身的可读性。一个图库页面在 Chrome 里能看,在 Safari 里未必能看;在桌面端能看,在移动端未必能看;在 2022 年能看,到了 2026 年可能因为安全策略的升级而加载失败。我的观点是:与其反复强调“在浏览器打开49图库”这个动作有多方便,不如把精力放在如何让索引结构更健壮、路径更规范、降级方案更完整上。这不是技术细节的堆砌,而是对资料本身的一种尊重。上周我在一个学术微信群里看到有位同行转了一张截图,是一个本地图库在 Edge 里打开后所有图片都显示为破图标的画面,底下有人评论说“图片丢了”。我回复了一句:“不是图片丢了,是浏览器拒绝加载它。”这句话我到现在还觉得是那个下午最有价值的收获。

等一下——这个页面下面的卡片区,就是我在这次折腾之后重新整理的。