2015-06-08 3 views
0

Я пытался целый день развертывать статические файлы Django на производстве, но до сих пор мне не повезло, поэтому мне абсолютно нужна помощь сообщества!развертывание производства django не загружает статические файлы

Мой Nginx конфигурации является:

worker_processes 1; 

user nobody nogroup; 
pid /tmp/nginx.pid; 
error_log /tmp/nginx.error.log; 

events { 
    worker_connections 1024; 
    accept_mutex off; 
} 

http { 
    include mime.types; 
    default_type application/octet-stream; 
    access_log /tmp/nginx.access.log combined; 
    sendfile on; 

    upstream app_server { 
     server unix:/tmp/gunicorn.sock fail_timeout=0; 
     # For a TCP configuration: 
     # server 192.168.0.7:8000 fail_timeout=0; 
    } 

    server { 
     listen 80 default; 
     client_max_body_size 4G; 
     server_name _; 

     keepalive_timeout 5; 

     # path for static files 
     root /home/ubuntu/src/static; 

     location/{ 
      # checks for static file, if not found proxy to app 
      try_files $uri @proxy_to_app; 
     } 

     location @proxy_to_app { 
      proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 
      proxy_set_header Host $http_host; 
      proxy_redirect off; 

      proxy_pass http://app_server; 
     } 

     error_page 500 502 503 504 /500.html; 
     location = /500.html { 
      root /home/ubuntu/src/static; 
     } 
    } 
} 

и в моем Джанго файле settings.py Я установил следующее:

STATIC_URL = '/static/' 
STATICFILES_DIRS =() 
STATICFILES_FINDERS = (
'django.contrib.staticfiles.finders.FileSystemFinder', 
'django.contrib.staticfiles.finders.AppDirectoriesFinder', 
) 
STATIC_ROOT = os.path.join(BASE_DIR, 'static') 

и, конечно, я запустить команду collectstatic Джанго и папка в пути /home/ubuntu/src/static существует со всеми соответствующими файлами.

Тем не менее мое развертывание не сервер статического файла:/

Кто-нибудь есть какие-либо идеи, что может быть не так с моей установки?

Спасибо заранее

ответ

0

Я использовал большой учебник here для моей установки. Надеюсь, это может помочь. Одно из очевидных изменений я вижу в использовании location /static/ для статических файлов и просто пересылки location / прямо gunicorn (или uwsgi в моем случае)

0

Добавить статический псевдоним сервера конф

location /static { 
      alias /home/ubuntu/src/static; # your Django project's static files - amend as required 
     } 

Полная конфигурация должна быть как

server { 
     listen 80 default; 
     client_max_body_size 4G; 
     server_name _; 

     keepalive_timeout 5; 

     # path for static files 
     # root /home/ubuntu/src/static; 

     location /static { 
      alias /home/ubuntu/src/static; # your Django project's static files - amend as required 
     } 

     location/{ 
      # checks for static file, if not found proxy to app 
      try_files $uri @proxy_to_app; 
     } 



     location @proxy_to_app { 
      proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 
      proxy_set_header Host $http_host; 
      proxy_redirect off; 

      proxy_pass http://app_server; 
     } 

     error_page 500 502 503 504 /500.html; 
     location = /500.html { 
      root /home/ubuntu/src/static; 
     } 
    } 
} 
+0

все еще он не сервер какой-либо статический файл. –

+0

Можете ли вы опубликовать журналы ошибок nginx? – moonstruck

+0

не содержит никаких ошибок. Последнее заключалось в том, что '2015/06/08 00:24:50 [emerg] 3209 # 0: до сих пор не удалось связать()', который я разрешил ранее. –