共享主机部署Strapi后无法检索媒体文件的问题
Strapi共享主机部署后媒体库检索404问题解决建议
问题概述
在共享主机部署Strapi CMS后,项目可正常启动并完成管理员登录,但媒体库检索时出现404错误;上传的文件已成功保存至/public_html/configure/public/uploads目录,本地环境无此异常,推测问题与共享主机平台配置相关。
针对性解决建议
1. 修正Strapi核心配置文件
- 修改
config/server.js:确保配置匹配子域名路径,示例如下:
module.exports = ({ env }) => ({ host: env('HOST', '0.0.0.0'), port: env.int('PORT', 1337), app: { keys: env.array('APP_KEYS'), }, url: env('PUBLIC_URL', 'https://configure.yourdomain.com'), // 替换为你的子域名完整地址 proxy: true, // 开启代理适配共享主机环境 });
- 修改
config/admin.js:同步管理面板的访问配置:
module.exports = ({ env }) => ({ auth: { secret: env('ADMIN_JWT_SECRET'), }, url: '/admin', app: { name: 'Admin Panel', logo: '', }, apiToken: { salt: env('API_TOKEN_SALT'), }, transfer: { token: { salt: env('TRANSFER_TOKEN_SALT'), }, }, });
2. 调整.htaccess规则适配共享主机Passenger环境
共享主机通常用Passenger运行Node.js应用,无需反向代理到localhost,替换原有规则为:
RewriteEngine On # 允许uploads目录直接访问 RewriteCond %{REQUEST_URI} !^/uploads # 排除静态文件请求 RewriteCond %{DOCUMENT_ROOT}%{REQUEST_URI} !-f # 将所有动态请求转发到Strapi启动文件 RewriteRule ^(.*)$ server.js [QSA,L]
3. 验证媒体存储插件配置
- 本地存储(strapi::upload):检查
config/plugins.js中存储路径配置是否正确:
module.exports = ({ env }) => ({ upload: { config: { provider: 'local', providerOptions: { sizeLimit: 10485760, // 10MB,可按需调整 }, server: { path: '/uploads', url: '/uploads', }, }, }, });
- Cloudinary插件:确保插件配置的
cloud_name、api_key、api_secret完全正确,且共享主机网络未限制对Cloudinary API的访问;同时在Strapi管理面板的「插件」->「上传」中,确认已切换为Cloudinary存储。
4. 检查cPanel Node.js应用设置
- 确认应用根目录为
/public_html/configure,启动文件为server.js; - 环境变量中添加
NODE_ENV=production,并确保数据库凭证(DATABASE_HOST、DATABASE_NAME等)配置正确; - 重启Node.js应用,确保配置生效。
5. 查看Strapi日志定位具体错误
前往/public_html/configure/logs目录,查看production.log或error.log文件,日志中会记录API请求的详细报错信息,比如数据库查询失败、权限不足、路由未注册等,可根据日志进一步排查。
6. 确认子域名目录映射
检查共享主机子域名配置,确保configure.yourdomain.com已正确映射到/public_html/configure目录,无路径映射错误或生效延迟。
内容的提问来源于stack exchange,提问作者user3088327
相关产品推荐
相关产品推荐

