1. 本地的 python manage.py collectstatic 收集到的静态文件,全部上传到七牛云( 收集静态文件时会把静态文件传到七牛云)
2. 当需要使用静态文件时,使用七牛云上的静态文件,访问速度快,提高页面打开速度
1. Django storage for 七牛云存储 (可以单独处理 文件,静态文件,media 文件)
1. nginx : nginx/1.12.2
2. django==1.11.21
3. django-qiniu-storage==2.3.1
# joyoo\joyoo\settings.py (joyoo 为项目名)添加 qiniu-storage 相关配置
# 确保 INSTALLED_APPS 安装了 django.contrib.staticfiles 这个 app
INSTALLED_APPS = [ 'django.contrib.staticfiles',]
# 七牛云账号相关配置
QINIU_ACCESS_KEY = ''
QINIU_SECRET_KEY = ''
QINIU_BUCKET_NAME = ''
QINIU_BUCKET_DOMAIN = ''
# 静态文件上传至七牛云配置
STATIC_URL = QINIU_BUCKET_DOMAIN + '/static_root/'
# STATICFILES_DIRS 除了各个app的static目录以外还需要管理的静态文件位置
# 其它存放静态文件的文件夹,可以用来存放项目中公用的静态文件,里面不能包含 STATIC_ROOT
# 如果不想用 STATICFILES_DIRS 可以不用,都放在 app 里的 static 中也可以
STATICFILES_DIRS = [ os.path.join(BASE_DIR, 'static').replace('\\', '/'), ]
STATIC_ROOT = 'static_root/' # 设置在七牛云的前缀
STATICFILES_STORAGE = 'qiniustorage.backends.QiniuStaticStorage' # 只上传静态文件至七牛云
# /usr/local/nginx/conf/vhost/xieboke.net.conf
server {
listen 80;
listen 443;
server_name www.xieboke.net xieboke.net;
charset utf-8;
ssl on;
ssl_certificate /root/yzq/ssl/xieboke.net/1_xieboke.net_bundle.crt;
ssl_certificate_key /root/yzq/ssl/xieboke.net/2_xieboke.net.key;
ssl_session_cache shared:SSL:1m;
ssl_session_timeout 5m;
ssl_ciphers HIGH:!aNULL:!MD5;
ssl_prefer_server_ciphers on;
access_log /root/yzq/logs/xieboke.net.access.log;
error_log /root/yzq/logs/xieboke.net.error.log;
location / {
uwsgi_pass 127.0.0.1:9090;
include uwsgi_params;
# root html;
# index index.html index.htm;
}
location /media {
alias /root/yzq/djangos/blog/media;
}
location /static {
# alias /root/yzq/djangos/blog/static_root;
# 这里换成七牛云的前缀,使用 proxy_pass,HTTPS 站点可以访问 HTTP 的资源
proxy_pass http://cdn.xieboke.net/static_root;
# 这里换成七牛云的前缀,使用 rewrite,HTTPS 站点不能访问 HTTP 的资源
# rewrite /static/(.*) http://cdn.xieboke.net/static_root/$1;
}
}
网站使用 https, 而 静态文件 使用 http, 配置 static 时要选择 proxy_pass 参数