django如何在分布式环境中通过nginx访问静态文件

时间:2015-03-25 09:32:32

标签: python django nginx

我有两台机器,一台是 nginx (ip:192.168.239.139),另一台是 django (ip:192.168.239.140),其中逻辑代码实际上是。他们通过 wsgi 相互通信。当请求进来时,nginx将请求转发给django,这很好,但是像/ images / js / css这样的静态文件无法加载。我试图修改django settting.py一遍又一遍但没有帮助,我读了很多关于这个问题的文章都没用,因为他们的服务器名都是nginx.conf中的'localhost',这意味着他们的静态文件在nginx服务器内的同一台机器上,但是我的是独立的。另外,无论nginx如何,我只运行python manage.py runserver,并且正确加载了静态文件,这是我的代码:

nginx.conf:

http {
    include       mime.types;
    default_type  application/octet-stream;
    upstream realservers{
                server 192.168.239.140:8080;
                #server 192.168.239.138:8000;
    }
    server {
        listen       80;
        server_name  localhost;
        location / {
                include uwsgi_params;
                uwsgi_pass realservers;
        }
    }
}

django setting.py:

STATICFILES_FINDERS=(
        'django.contrib.staticfiles.finders.FileSystemFinder',
        'django.contrib.staticfiles.finders.AppDirectoriesFinder'
)
#STATICFILES_DIRS = (
#       os.path.join(BASE_DIR,'../static/'),
#       '/usr/local/lib/python3.4/site-packages/rest_framework_swagger/static/rest_framework_swagger/',
#)

STATIC_ROOT= os.path.join(BASE_DIR,'/static/')
STATIC_URL = '/static/'

我的静态目录在我的项目的根目录下与manage.py

相同

那么,任何人都可以帮我解决这个问题吗?我会很感激的!

0 个答案:

没有答案