wordpress网站迁移服务器后图片加载不显示的解决方法

2023年9月13日 飞飞 阅读(899)
知识付费主题,优惠促销中:xx-blog主题

最近服务器要到期了,就想着把网站转移到另外一台服务器,本来打算要续费的,但是腾讯云的服务器有了新的规定,域名必须在腾讯云备案才能使用,在别的地方备案的域名需要转到腾讯云,在腾讯云在走一遍备案流程,若是备案简单,时间短也就无所谓了,就转一下,可是这个备案大家也知道,至少得一个月,于是就只能放弃腾讯云了,将站点转回备案的阿里云,以后就用阿里云了,贵点就贵点吧。

这不网站迁移过去了,死活图片不显示,各种排查,跟踪代码最后终于被我解决了。

说明

1、图片都存在,已经从另外一台服务器复制过来,所以不存在图片丢失或者无图片的问题。

2、使用的是 aq_resize 裁图,这个是关键,问题就出现在这。

不显示图片的效果

原因分析

// Check if $img_url is local.
if ( false === strpos( $url, $upload_url ) )
    throw new Aq_Exception('Image must be local: ' . $url);

// Define path of image.
$rel_path = str_replace( $upload_url, '', $url );
$img_path = $upload_dir . $rel_path;
// Check if img path exists, and is an image indeed.
if ( ! file_exists( $img_path ) or ! getimagesize( $img_path ) )
    throw new Aq_Exception('Image file does not exist (or is not an image): ' . $img_path);
// Get image info.
$info = pathinfo( $img_path );

一路跟踪代码,发现到了file_exists( $img_path ) or ! getimagesize( $img_path ) 这句的时候执行不下去了,这是为什么呢?让我们看看这句的解释

这段代码用于检查图片文件是否存在,并且确保它是一个有效的图片文件。如果条件不满足,则会抛出Aq_Exception异常,其中包含错误消息和图片路径。

具体解释如下:

  1. file_exists($img_path)函数用于检查指定路径的文件是否存在。如果图片文件不存在,则条件为真。
  2. getimagesize($img_path)函数用于获取指定图片文件的尺寸信息。如果无法获取尺寸信息(即不是有效的图片文件),则条件为真。
  3. 如果以上两个条件之一为真,则表示图片文件不存在或者不是有效的图片文件。
  4. 在满足以上条件时,使用throw关键字抛出Aq_Exception异常,并将错误消息和图片路径作为异常信息进行传递。

这段代码的目的是确保所处理的文件是存在的,并且是有效的图片文件。如果不是有效的图片文件,可能会导致后续的操作出错,因此通过抛出异常来提醒开发者注意并做出相应的处理。

大意是说检查此图片是否存在,于是看参数 $img_path = $upload_dir . $rel_path; 参数中的$upload_dir 打印出来竟然是网站的安装目录地址 /var/html/wp/wp-content/uploads。也就是说我从另外一台服务器换过来后,这个地址变了,而数据库存储的不变。可查看 wp_option 表的 upload_path字段,就这么个原因。

解决方法

后台->设置->媒体->默认上传路径,中将路径去掉,重新保存即可。

这样这个问题就解决了。


关注微信公众号『xx主题网

第一时间了解最新网络动态
关注博主不迷路~

未经允许不得转载:xx主题网 » wordpress网站迁移服务器后图片加载不显示的解决方法
分享到:

评论抢沙发

要发表评论,您必须先

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏

扫码关注微信公众号

扫描关注xx主题网