目录[-]

解决ubuntu16.04+Apache+Django=1.11+admin后台管理css,js资源不能加载问题

在使用django的过程中,我们都知道默认django的degub模式是开启的,它自会帮我们加载css,js等资源,可以一但我们将其关闭,将不能加载css资源。一般django的mangge是同我们用来做开发用的,所以一旦移交线上环境,静态资源的加载,这交付Apache或者nginx来处理。

Start

apache2的项目配置文件:


<VirtualHost *:80> ServerName sunsunsir.cn ServerAdmin py@163.cn #wsgi文件目录 WSGIDaemonProcess python-home=/usr/lib/python3.5 python-path=/usr/local/lib/python3.5/dist-packages home="/var/www/html/django-blog" WSGIScriptAlias / /var/www/html/django-blog/django_blog/wsgi.py <Directory /var/www/html/django-blog/django_blog> <Files wsgi.py> Require all granted </Files> </Directory> #项目文件目录 DocumentRoot /var/www/html/django-blog <Directory /var/www/html/django-blog> Require all granted </Directory> #静态文件目录 Alias /static/ /var/www/html/django-blog/static1/ <Directory /var/www/html/django-blog/static1/> Require all granted </Directory> #错误日志 ErrorLog ${APACHE_LOG_DIR}/django-myproject-error.log CustomLog ${APACHE_LOG_DIR}/myproject-django.log combined </VirtualHost>

Django的setting文件:


STATIC_URL = '/static/'

STATICFILES_DIRS = (
    os.path.join(BASE_DIR, 'static'),
    "/var/www/html/django-blog/static",
)
STATIC_ROOT = '/var/www/html/django-blog/static1'
注意事项:
必须加此句配置:
STATIC_ROOT = '/var/www/html/django-blog/static1' 其中这个路径怎么得到的,接下来将告诉大家

项目静态文件生成

在项目的根目录下运行此命令:
    python manage.py collectstatic
    在命令运行结束会返回一个配置路径,将其复制给 STATIC_ROOT变量
重启服务:
    service apache2 restart 

配置生效