当Django运行在生产环境时,将不再提供静态文件的支持,需要将静态文件交给静态文件服务器。我们需要收集项目中静态文件,并放到静态文件服务器中。我们使用Nginx服务器作为静态文件服务器。
一、收集项目静态文件
- 配置收集静态文件(settings.py)
STATIC_ROOT = os.path.join(os.path.dirname(BASE_DIR), 'static')
- 在python中的shell执行收集静态文件命令
$ python manage.py collectstatic
二、部署Nginx服务器提供静态数据
web网站的域名:www.tb.com
web网站的端口:80
- 打开Nginx服务器配置文件
$ sudo vim /usr/local/nginx/conf/nginx.conf
- 修改Nginx服务器配置文件
http {
......
server { # 静态服务
listen 80;
server_name www.tb.com;
location /static {
alias /home/python/static;
}
location /detail {
alias /home/python/static/detail;
}
location = / {
root /home/python/static;
index index.html index.htm;
}
location = /index.html {
root /home/python/static;
index index.html index.htm;
}
}
}
- 启动Nginx服务器
Ubuntu下运行Nginx服务器
# 检查配置文件
$ sudo /usr/local/nginx/sbin/nginx -t
# 首次启动
$ sudo /usr/local/nginx/sbin/nginx
# 重启
sudo /usr/local/nginx/sbin/nginx -s reload
# 停止
$ sudo /usr/local/nginx/sbin/nginx -s stop
- 测试静态文件的访问
浏览器上访问
# 静态主页
http://www.tb.com/
# 静态详情页
http://www.tb.com/detail/1.html
部署完静态文件可以访问页面了,但还无法请求动态数据,解决答案请查看下一篇
Nginx6 - Ubuntu下Django项目部署反向代理动态业务
以上为测试使用的域名和端口,在实际项目中需根据自己的情况更改。