-
Notifications
You must be signed in to change notification settings - Fork 81
How to handle old images
Ivan Chou edited this page May 13, 2019
·
12 revisions
如果你的站点在使用本插件之前,已经有很多内容和图片了,那么在刚启用插件的时候,可能一定会遇到一个尴尬的情况:
这插件什么鬼,我的图片全都显示不出来了
不用着急,其实这是常规操作。
插件为了不对 WordPress 本身的数据产生任何影响,并没有添加新的字段来标识哪些文件是已经上传了 OSS 的,所以会在 WordPress 获取附件(图片)Url 做全局的修改,因而导致使用插件之前的附件也被替换成了 OSS 地址,但 OSS 上不存在对应的文件,于是 404。
插件「存储路径」 | 回源 host | 回源 path | 文件名前缀(可选) |
---|---|---|---|
/ or [empty] | your-site.com | wp-content/uploads/ | |
uploads | your-site.com | wp-content/ | /uploads |
wp-content/uploads | your-site.com | /wp-content/uploads |
比如「存储路径」为 blog/
, WordPress 目录是 /www/wordpress/
回源请求的 url 则为:http://your-site.com/blog/image.jpg
文件实际位置则是:/www/wordpress/wp-content/uploads/image.jpg
此时无法只通过 OSS 后台的设置实现回源,需要搭配以下两种方法之一来完成
- 方法一:设置 Nginx 规则 (Apache 同理)
location /blog {
root /www/wordpress/wp-content/uploads
}
- 方法二:通过
ln -s
来实现回源目录的软链接, 对应的命令是:
ln -s /www/wordpress/wp-content/uploads /www/wordpress/blog
如果不想设置回源,或者使用了自定义目录不方便设置回源,也可以直接把缺失的文件上传到 OSS 上对应的目录即可
3.2.3 以后的版本在高级选项里面加入了 Exclude 选项,你可以编写对应的正则表达式来排出老文件,让对老文件的请求依旧落到服务器上。