生产环境肯定是要关闭 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 图表无论如何都不给正常显示。各种更换对象存储,都没有用。检查页面,发现原来是自己给对象存储的域名配置错了。

2019-08-02_13-27