在docker中部署django项目时,由于docker的单线程而无法在容器里配置静态文件访问,所以会有静态文件访问的问题,使用whitenoise模块可以解决这个问题,下面是具体的配置:
1、安装whitenoise模块(在requirement.txt里增加whitenoise,或者在Dockerfile文件里也行);
2、在wsgi.py(一般与setting.py在相同的目录里)配置whitenoise,如下:
from django.core.wsgi import get_wsgi_application
from whitenoise.django import DjangoWhiteNoise
application = get_wsgi_application()
application = DjangoWhiteNoise(application)
在settings.py文件里STATIC_ROOT 和 STATICFILES_DIRS 的值不能相同,这样就可以访问docker里的静态文件了。