使用 nginx 和 uwsgi 部署 django 项目,能够正常访问各个页面
目标功能是进入 admin 页面上传图片,即时显示在首页上
目前通过 admin 上传图片后,图片会存放在 django 项目的 static/media/upload 目录下,ng 的静态文件目录下没有
由于设置了 nginx,所以现在首页无法显示图片,因为图片在 /var/www/static/projectName 目录下没有
网上找到一种 将图片目录重定向到 nginx 的的静态文件目录 的方案,可惜没有解决
这里请教一下各位老哥,应该如何配置可以实现在 admin 中上传图片后,可以直接存在 /var/www/static/projectName 目录下(也就是 ng 的静态文件目录)
非常感谢,希望大家能不吝吐槽和赐教!!!
upstream django {
server 127.0.0.1:8000; # for a web port socket (we'll use this first)
}
server {
listen 80;
charset utf-8;
client_max_body_size 75M;
location /media {
alias /var/www/NickBlog/static;
}
location /static {
alias /var/www/NickBlog/static;
}
location / {
uwsgi_pass django;
include uwsgi_params;
}
}
[uwsgi]
# Django-related settings
socket = :8000
# the base directory (full path)
chdir = /root/NickBlog/
wsgi-file = /NickBlog/wsgi.py
# Django s wsgi file
module =NickBlog.wsgi
# process-related settings
# master
master = true
# maximum number of worker processes
processes = 4
# ... with appropriate permissions - may be needed
# chmod-socket = 664
# clear environment on exit
vacuum = true
pidfile=uwsgi.pid
daemonize=uswgi.log
STATIC_URL = '/static/'
STATIC_ROOT = '/var/www/NickBlog/static/'
# 公共的 static 文件
STATICFILES_DIRS = (
os.path.join(BASE_DIR, "static"),
os.path.join(BASE_DIR, "static/media"),
)
# upload floder
MEDIA_URL = '/static/media/'
MEDIA_ROOT = os.path.join(BASE_DIR, 'static/media')
STATICFILES_FINDERS = ("django.contrib.staticfiles.finders.FileSystemFinder",
"django.contrib.staticfiles.finders.AppDirectoriesFinder",)
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.