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

部署在Railway的Django应用Admin面板CSRF验证失败求助

解决Django部署Railway后Admin面板CSRF验证失败问题

问题根源

你配置的CSRF_TRUSTED_ORIGINS和CORS_ALLOWED_ORIGINS末尾多了斜杠/,而Django对源的匹配是严格区分的——错误提示里的源是https://web-production-93c6.up.railway.app(不带斜杠),和你配置的带斜杠地址不匹配,直接导致了CSRF验证失败。

修复步骤

  1. 修改settings.py中的信任源配置,删掉末尾的斜杠:
# 修正后的CSRF信任源
CSRF_TRUSTED_ORIGINS = [
    'https://web-production-93c6.up.railway.app'
]

# 修正后的CORS允许源
CORS_ALLOWED_ORIGINS = [
    'https://web-production-93c6.up.railway.app'
]
  1. (可选优化)为避免Railway重新部署后域名变动再次出问题,建议用环境变量动态配置:
import os

# 从环境变量读取,默认值保留原有域名
CSRF_TRUSTED_ORIGINS = [os.getenv('CSRF_TRUSTED_ORIGIN', 'https://web-production-93c6.up.railway.app')]
CORS_ALLOWED_ORIGINS = [os.getenv('CORS_ALLOWED_ORIGIN', 'https://web-production-93c6.up.railway.app')]

之后去Railway应用的环境变量设置中,添加CSRF_TRUSTED_ORIGIN和CORS_ALLOWED_ORIGIN,值填入你的实际应用域名即可。
3. 重新部署应用:Railway推送代码后会自动重启服务,若未生效可手动触发一次部署。

额外检查项

别忘了确认ALLOWED_HOSTS包含你的应用域名,这也是部署时容易遗漏的配置:

ALLOWED_HOSTS = ['web-production-93c6.up.railway.app', 'localhost']

内容的提问来源于stack exchange,提问作者kabszac

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.27 16:37:38