Django同局域网下使用本地IP无法访问问题求助
问题解决步骤
1. 处理Cross-Origin-Opener-Policy及登录跳转异常
你配置了SESSION_COOKIE_SECURE = True和CSRF_COOKIE_SECURE = True,这两项强制要求必须通过HTTPS协议传递会话和CSRF Cookie,但你用本地IP访问时使用的是HTTP协议,导致Cookie无法正常生效,进而触发跨域相关报错,登录状态无法维持。
解决方式:
- 本地开发测试阶段可临时关闭HTTPS强制要求,修改配置:
SESSION_COOKIE_SECURE = False CSRF_COOKIE_SECURE = False - 若需用HTTPS访问本地IP,可通过带SSL参数的
runserver命令启动服务:
(需提前生成自签名SSL证书用于本地开发)python manage.py runserver 192.168.0.81:8000 --ssl-certfile=cert.pem --ssl-keyfile=key.pem
2. 修复静态文件MIME类型错误
报错显示静态文件返回text/html类型,说明请求静态文件时返回的是404页面(HTML格式),而非正确的JS文件,核心原因是静态文件未被正确收集或服务。
解决方式:
- 执行静态文件收集命令,将所有应用的静态文件统一复制到
STATIC_ROOT指定目录:python manage.py collectstatic - 确保开发环境下Django能正确识别静态文件目录,在
settings.py中补充配置(若项目根目录存在static文件夹):DEBUG = True STATICFILES_DIRS = [BASE_DIR / 'static'] - 启动服务时明确绑定目标IP,与访问IP保持一致:
python manage.py runserver 192.168.0.81:8000
内容的提问来源于stack exchange,提问作者iwan hermawan
相关产品推荐
相关产品推荐

