记一次django项目的线上部署错误,django+nginxcss
在将django项目部署到阿里云(nginx做为web服务器)上以后发现出现后台管理界面admin不显示样式。
python
打开浏览器查看css资源后发现,虽然文件指向项目文件中的静态资源,可是static目录下却没有相应的css和js资源
尝试在项目路径下收集样式nginx
python manage.py collectstatic
显示报错web
django.core.exceptions.ImproperlyConfigured: You're using the staticfiles app without having set the STATIC_ROOT setting to a filesystem path.
由报错信息大概得之跟路径配置静态文件路径有关django
在本地时,却没有出现问题
浏览器
在本地部署到线上后主要是将settings.py配置文件中的debug模式作了修改,服务器
DEBUG = True ALLOWED_HOSTS = []
改成app
DEBUG = False ALLOWED_HOSTS = ["*"]
在debug为True的模式下,django的静态文件都有内部本身管理,文件都在django内部,而部署线上以后没法正常显示后台admin的静态文件,就须要指定静态文件的目录
这里直接在settings.py中设置指定的静态文件目录:阿里云
STATIC_ROOT = os.path.join(BASE_DIR, 'static')#指定样式收集目录 #或 STATIC_ROOT = '/www/mysite/mysite/static' #指定样式收集目录
而后收集CSS样式,在终端输入:debug
python manage.py collectstatic
运行这个命令以后,就会自动把后台CSS样式和其余相关文件资源收集到/static/目录下。
刷新页面就能恢复样式!