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

Django静态文件经ngrok部署后手机无法访问的问题咨询

问题分析与解决方案

针对你遇到的Django+ngrok部署后,PC能加载静态图片但手机无法访问的问题,以下是常见原因和解决办法:

1. 反向代理头配置缺失(核心原因)

ngrok作为反向代理,会将真实的请求域名、协议等信息通过HTTP头传递给Django,但默认情况下Django不会识别这些头,导致生成的静态资源URL仍指向本地127.0.0.1,而非ngrok的公网域名。

解决方法:在settings.py中添加以下配置:

# 让Django识别反向代理传递的Host头
USE_X_FORWARDED_HOST = True
# 识别HTTPS协议(ngrok免费版默认启用HTTPS)
SECURE_PROXY_SSL_HEADER = ('HTTP_X_FORWARDED_PROTO', 'https')

2. 混合内容拦截

如果你的ngrok URL是HTTPS协议,但Django生成的静态资源URL是HTTP,手机浏览器会因混合内容安全策略阻止加载非HTTPS资源。

验证方式:在手机浏览器的开发者工具中查看图片请求的URL,若显示为http://127.0.0.1/static/...,则说明是上述反向代理头未配置导致的,按第1点修复即可。

3. 网络环境限制

  • 部分移动运营商可能会屏蔽ngrok的免费域名,尝试切换手机网络(比如从移动数据切换到和PC同局域网的WiFi),看是否能正常加载。
  • 检查手机是否开启了VPN、广告拦截等工具,这类工具可能会阻断ngrok的请求。

4. 额外优化建议

  • 你的settings.py中重复设置了DEBUG = True,建议删除重复项,保持配置整洁。
  • 确认ALLOWED_HOSTS中的ngrok域名正确无误,每次重启ngrok后域名会变化,需同步更新ALLOWED_HOSTS。

内容的提问来源于stack exchange,提问作者吳東耀

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.21 05:26:11