You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

部署Headless WordPress后WPGraphQL无法获取图片URL如何解决

解决NextJS+Headless WordPress部署到Hostinger VPS后GraphQL无法获取图片URL的问题

1. 修正WordPress站点URL配置

本地开发时站点URL为localhost,部署到VPS后必须更新为线上公网地址:

  • 登录WordPress后台,进入设置->常规,将「WordPress地址(URL)」和「站点地址(URL)」修改为你的域名或VPS公网IP(比如https://your-domain.com)。
  • 也可通过WP-CLI快速修改(在VPS服务器终端执行):
    wp option update siteurl 'https://your-domain.com'
    wp option update home 'https://your-domain.com'
    

2. 验证GraphQL返回的媒体URL

直接在线上环境访问GraphQL端点(https://your-domain.com/graphql),执行以下查询,检查返回的sourceUrl是否为有效线上地址:

query {
  mediaItems(first:1) {
    nodes {
      sourceUrl
    }
  }
}

如果返回的还是本地URL,说明站点URL未生效或存在缓存。

3. 清理各级缓存

  • 清理WordPress缓存:若安装了缓存插件(如LiteSpeed Cache、WP Rocket),在插件后台执行清理;也可用WP-CLI命令:
    wp cache flush
    
  • 清理服务器端缓存:Hostinger VPS的LiteSpeed服务器自带缓存,可在Hostinger控制面板或服务器终端执行缓存清理;若使用Cloudflare等CDN,也需清理CDN缓存。

4. 检查服务器环境与文件权限

  • PHP配置:确认allow_url_fopen选项开启(可通过phpinfo()查看),该选项关闭会导致媒体URL解析异常。
  • 文件权限:修正wp-content/uploads文件夹权限,确保媒体文件可被正常访问:
    chmod -R 755 wp-content/uploads/
    chmod -R 644 wp-content/uploads/*
    
  • MySQL字符集:确认数据库字符集为utf8mb4,避免URL存储乱码(可通过PhpMyAdmin或MySQL命令行查看)。

5. 排查Hostinger安全限制

  • 检查Hostinger VPS防火墙:确认未阻止媒体文件的访问请求,可直接访问图片URL测试是否能正常打开。
  • 确认GraphQL端点未被安全插件(如Wordfence)拦截,可临时关闭安全插件测试。

内容的提问来源于stack exchange,提问作者Hanel Rhe

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.20 13:43:22