Heroku部署Django应用后出现Server Error (500)错误求助
Django+Whitenoise部署Heroku报错解决方案
- 修复ALLOWED_HOSTS配置
现有配置中127.0.0.1:8000携带了端口,Django的ALLOWED_HOSTS仅支持填写域名或IP,删除端口即可,修改后为:ALLOWED_HOSTS = ['labwebsitetest.herokuapp.com','127.0.0.1'] - 取消禁用COLLECTSTATIC
Whitenoise依赖collectstatic命令生成的静态资源文件运行,手动禁用COLLECTSTATIC后,部署阶段不会生成STATIC_ROOT对应目录的资源,直接触发静态资源加载报错,请前往Heroku控制台的配置变量页删除DISABLE_COLLECTSTATIC配置项。 - 补充静态文件扫描路径
现有配置未声明应用外的全局静态文件路径,如果你有放在单个APP目录外的静态资源(包括PyTorch模型文件、全局CSS/JS/图片),需要新增STATICFILES_DIRS配置:# 替换括号内的路径为你实际存放全局静态资源的文件夹名 STATICFILES_DIRS = [ os.path.join(BASE_DIR, 'common_static'), ] - 适配Heroku运行环境
- Heroku文件系统是临时存储,每次部署都会重置,你当前使用的SQLite数据库不仅会丢失所有写入的数据,还可能触发权限错误导致服务崩溃,建议切换为Heroku自带的PostgreSQL数据库
- Heroku单应用slug体积上限为500MB,完整PyTorch依赖容易超出大小限制,建议在requirements.txt中指定安装CPU版本PyTorch减少体积:
--find-links https://download.pytorch.org/whl/torch_stable.html torch==2.0.0+cpu torchaudio==2.0.0+cpu torchvision==0.15.0+cpu - 检查启动配置
确保项目根目录存在Procfile文件,内容如下,同时将gunicorn添加到requirements.txt依赖中:web: gunicorn website.wsgi --log-file - - 优化敏感信息配置
现有明文硬编码SECRET_KEY存在安全风险,建议修改为读取环境变量:
之后在Heroku配置变量页新增SECRET_KEY = os.environ.get('DJANGO_SECRET_KEY', 'django-insecure-2e(@-ilm2ph7sx34c-0^!o4bcjt2#fx^j=l(m$ey@aqe823q62')DJANGO_SECRET_KEY项,填写随机生成的安全密钥即可。
内容的提问来源于stack exchange,提问作者harsh
相关产品推荐
相关产品推荐

