Medusa.js后台管理页面空白问题求助(前端正常、Nginx代理)
问题解决:Medusa Admin反向代理后空白页面
问题分析
你的Medusa Admin服务返回的HTML中,脚本路径采用根路径(/runtime~main.bundle.js),通过Nginx反向代理到domain.com/admin后,浏览器会尝试从domain.com/runtime~main.bundle.js加载资源,而非domain.com/admin/runtime~main.bundle.js,导致资源加载404,最终页面空白。
解决步骤
1. 配置Medusa Admin静态资源路径
在Medusa Admin项目的.env文件中添加:
ADMIN_PUBLIC_PATH=/admin
或者启动Admin服务时直接指定参数:
npm run start -- --public-path /admin
2. 调整Nginx反向代理配置
修改Nginx的域名配置文件,确保/admin路径的请求被正确代理:
server { listen 80; server_name domain.com; # 店铺前端代理(假设前端运行在3000端口) location / { proxy_pass http://localhost:3000; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; } # Medusa Admin代理 location /admin { proxy_pass http://localhost:7001; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; proxy_redirect off; } }
3. 重启相关服务
- 重启Medusa Admin服务,让
ADMIN_PUBLIC_PATH配置生效 - 重启Nginx服务:
nginx -s reload
4. 验证结果
用curl访问domain.com/admin,查看返回的HTML中脚本路径是否变为/admin/runtime~main.bundle.js,之后在浏览器访问即可正常加载页面。
内容的提问来源于stack exchange,提问作者Sylwester Zabielski
相关产品推荐
相关产品推荐

