Skip to content

How to handle old images

Ivan Chou edited this page Nov 7, 2018 · 12 revisions

启用插件导致老图片无法访问如何处理

如果你的站点在使用本插件之前,已经有很多内容和图片了,那么在刚启用插件的时候,可能一定会遇到一个尴尬的情况:

这插件什么鬼,我的图片全都显示不出来了

不用着急,其实这是常规操作。

缘由

插件为了不对 WordPress 本身的数据产生任何影响,并没有添加新的字段来标识哪些文件是已经上传了 OSS 的,所以会在 WordPress 获取附件(图片)Url 做全局的修改,因而导致使用插件之前的附件也被替换成了 OSS 地址,但 OSS 上不存在对应的文件,于是 404。

解决方案

1. 设置 OSS 回源

  • 当插件「存储路径/Storage Path」设置为 /wp-content/uploads, /uploads, / 或者空时

  • 当插件「存储路径/Storage Path」为自定义路径时

    目前只能通过在服务器上 ln -s 来实现回源目录的映射,比如我的「存储路径」为 blog/, WordPress 目录是 /www/wordpress/, 对应的命令可以是:

    ln -s /www/wordpress/wp-content/uploads /www/wordpress/blog

    然后设置回源地址为 http://your-site.com/blog/image.jpg 即可

2. 手动上传文件

如果不想设置回源,或者使用了自定义目录不方便设置回源,也可以直接把缺失的文件上传到 OSS 上对应的目录即可

3. 设置 Exclude 目录

3.2.3 以后的版本在高级选项里面加入了 Exclude 选项,你可以编写对应的正则表达式来排出老文件,让对老文件的请求依旧落到服务器上。

Clone this wiki locally