Strapi配置Cloudinary后图片无法上传问题排查(3.6.3版本适配成功)
关于.env配置的引号问题
Strapi依赖的dotenv库对字符串值的包裹规则很宽松:如果你的配置值没有空格、#、$等特殊字符,单引号、双引号、不加引号都可以正常解析,你当前的引号写法不会导致问题。
故障排查及修复方案
- 首先修复
extensions/upload/config/settings.json的语法错误:你贴出的配置内容重复定义了两次provider配置块,存在多余的闭合},JSON语法完全不合法,Strapi无法读取该配置。而Strapi v3中settings.json的优先级高于config/plugins.js,配置失效后会默认走本地存储,这也是你终端日志里返回/uploads/开头本地路径的核心原因。请将该文件内容修正为合法JSON:
{ "provider": "cloudinary", "providerOptions": { "cloud_name": "devert0mt", "api_key": "你的Cloudinary api_key", "api_secret": "你的Cloudinary api_secret" } }
- 检查上传插件版本兼容性:Strapi v3只能适配v3版本的
strapi-provider-upload-cloudinary,如果你安装了适配Strapi v4的最新版插件会直接失效。请执行命令安装和你Strapi版本对齐的插件:npm i strapi-provider-upload-cloudinary@3.6.3 - 验证配置加载逻辑:你可以先在
plugins.js里硬写Cloudinary的三个参数,暂时不用env()读取,测试是否能上传成功。如果硬写可正常上传,就检查.env文件是否放在项目根目录、文件名是否正确(不要有.txt等额外后缀),且三个参数没有填错、没有把api_key和api_secret搞反。 - 每次修改配置后必须重启Strapi服务,配置才会生效。
内容的提问来源于stack exchange,提问作者Dmitry Kotikov
相关产品推荐
相关产品推荐

