Django/Wagtail debug=False 出现 500 错误
生产环境肯定是要关闭 debug 的,开发环境运行的好好的,可是部署到生产环就给报一个 Error 500 内部服务器错误,debug=True
马上就能正常访问。这个问题有两个原因:
原因一 未配置允许的主机
生产环境配置文件 production.py 中有一行:
ALLOWED_HOSTS = ['it.ismy.fun', '.ismy.fun']
把站点使用的域名填进去。配置以后还是 500错误?
原因二 静态文件问题
生产环境中,Django 是不管静态文件的,所以我们要配置一个静态文件的存储后端。配置好后端,用 ./manage.py collectstatic
将程序中所有静态文件分发到存储后端,这样就一定能访问了。
解决方法:Wagtail/Django 使用 S3-like 对象存储
一个奇葩的问题
我配置了用对象存储作为后端,而且也按照规则定义了存储桶的 CORS 跨域访问规则,可是 wagtail admin 界面的 icon 图表无论如何都不给正常显示。各种更换对象存储,都没有用。检查页面,发现原来是自己给对象存储的域名配置错了。