生产环境下Strapi插件无法加载问题求助(Uberspace部署)
解决Strapi部署到Uberspace时插件静态资源404问题
针对你遇到的插件资源404(如/ckeditor5/ckeditor-config)问题,结合本地正常、服务器异常的情况,排查方向和解决步骤如下:
1. 确认构建时环境变量完整传入
本地构建正常但服务器异常,大概率是构建阶段未正确传入URL等关键环境变量,导致插件生成的静态资源路径错误。
- 构建时必须显式传入环境变量,不要仅依赖配置文件读取:
URL=https://reeed2.uber.space NODE_ENV=production npm run strapi build - 验证:构建完成后,检查
.strapi/build/admin目录下的插件相关静态资源路径,确认是否包含正确的域名前缀,而非相对路径。
2. 配置Uberspace的静态资源映射
Uberspace默认从public目录提供静态资源,但Strapi插件的静态资源在.strapi/build目录下,需添加代理规则映射路径:
- 在Uberspace的
.htaccess或web配置中添加规则(根据实际插件路径调整):RewriteRule ^ckeditor5/(.*)$ /.strapi/build/admin/ckeditor5/$1 [L] RewriteRule ^menu-plugin/(.*)$ /.strapi/build/admin/menu-plugin/$1 [L]
3. 确保服务器依赖安装完整
服务器构建前,重新安装所有依赖避免版本不一致:
rm -rf node_modules package-lock.json npm install --production
4. 验证反向代理请求头传递
Strapi的proxy: true配置需要依赖代理传递的头信息,在Uberspace代理配置中添加:
RequestHeader set X-Forwarded-Proto "https" RequestHeader set X-Forwarded-Host "reeed2.uber.space"
5. 启用详细日志排查
修改config/env/production/server.js添加日志配置,重启服务后查看详细请求处理过程:
module.exports = ({ env }) => ({ proxy: true, url: env('URL', 'https://reeed2.uber.space'), port: env('PORT', '1337'), host: env('HOST', '0.0.0.0'), app: { keys: env.array('APP_KEYS') }, logger: { level: 'debug', format: 'json' } })
内容的提问来源于stack exchange,提问作者derelektrischemoench
相关产品推荐
相关产品推荐

