我刚刚在生产中放置了我的 Django 应用程序的另一个副本。我的“旧”应用程序和“新”应用程序之间的唯一预期区别是旧应用程序在“传统”Heroku 中运行,而新应用程序在“Dockerized”Heroku 中运行。
最奇怪的事情正在发生。我使用 Whitenoise 来服务我的静态资产。在旧版应用程序中,指向我的静态资产的链接在生成的页面中如下所示:
<link href="/static/assets/css/bootstrap.min.9f236e18d5bf.css" rel="stylesheet">
但是在我的新应用程序中,那个小字符串 (9f236e18d5bf) 不见了。看起来像:
<link href="/static/assets/css/bootstrap.min.css" rel="stylesheet">
结果,我的新站点上没有任何样式表。
我是否必须在 Dockerized 版本中采取其他步骤才能使其正常工作?或者我是否缺少一些所需的 STATIC* 设置值组合。
我的临时解决方法是添加python manage.py collectstatic --noinput
到 Dockerfile.web,然后设置:
STATICFILES_STORAGE = 'django.contrib.staticfiles.storage.StaticFilesStorage'
哪个有效,但我想知道我是否会在周一遇到扩展问题。