Arquivos estáticos no Django com Nginx

438 views
Skip to first unread message

Frederico da Silva Santos

unread,
Apr 20, 2014, 10:50:22 PM4/20/14
to django...@googlegroups.com
Galera estou fazendo o deploy de uma aplicação Django 1.6 e estou apanhando para servir os arquivos estáticos com Nginx.
O arquivo com a configuração do Nginx está assim:
upstream compareoff_gunicorn {
        # For a TCP configuration:
        server ip_do_meu_servidor:9000 fail_timeout=0;
}

server {
    listen 80;
    client_max_body_size 4G;
    server_name compareoff.com.br;

    keepalive_timeout 5;

    # path
    # root /deploy/sites/compare_off;

    location /static/ { # STATIC_URL
        alias /deploy/sites/compare_off/core/static/; # STATIC_ROOT
        expires 30d;
    }

    location /media/ { # MEDIA_URL
        alias /deploy/sites/compare_off/core/static/imagens/; # MEDIA_ROOT
        expires 30d;
    }

    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://compareoff_gunicorn;
    }

  
}

OBS: Meu diretório static está dentro da app core
Vi vários tutoriais, mas não consegui resolver

T+

Ricardo Kamada

unread,
Apr 20, 2014, 11:23:49 PM4/20/14
to django...@googlegroups.com

Vc fez o collectstatic para copiar os arquivos ?

--
Você recebeu essa mensagem porque está inscrito no grupo quot;Django Brasil" dos Grupos do Google.
Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para django-brasi...@googlegroups.com.
Para mais opções, acesse https://groups.google.com/d/optout.

Frederico da Silva Santos

unread,
Apr 21, 2014, 7:12:57 AM4/21/14
to django...@googlegroups.com
Fiz sim Ricardo. Ele copiou tudo para a pasta raiz do projeto.

Ricardo Kamada

unread,
Apr 21, 2014, 11:01:45 AM4/21/14
to django...@googlegroups.com

Voce mudou o caminho no settings.py ?

Frederico da Silva Santos

unread,
Apr 21, 2014, 1:39:06 PM4/21/14
to django...@googlegroups.com
Você se refere ao caminho do STATIC_URL?
Se for isso... Não alterei.
O meu settings está da seguinte forma:

import os
BASE_DIR = os.path.dirname(os.path.dirname(__file__))

DEBUG = False

TEMPLATE_DEBUG = DEBUG

#ALLOWED_HOSTS = ['localhost', '127.0.0.1']
ALLOWED_HOSTS = ['.compareoff.com.br']

CRISPY_TEMPLATE_PACK = 'bootstrap3'

# Application definition

INSTALLED_APPS = (
    #'grappelli',
    'bootstrap_admin',
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'south',
    'debug_toolbar',
    'crispy_forms',
    'core',
)

MIDDLEWARE_CLASSES = (
    'django.contrib.sessions.middleware.SessionMiddleware',
    'django.middleware.common.CommonMiddleware',
    'django.middleware.csrf.CsrfViewMiddleware',
    'django.contrib.auth.middleware.AuthenticationMiddleware',
    'django.contrib.messages.middleware.MessageMiddleware',
    'django.middleware.clickjacking.XFrameOptionsMiddleware',
)

# django-debug-toolbar
INTERNAL_IPS = ('127.0.0.1')

ROOT_URLCONF = 'CompareOff.urls'

WSGI_APPLICATION = 'CompareOff.wsgi.application'

# Database
# https://docs.djangoproject.com/en/1.6/ref/settings/#databases

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.postgresql_psycopg2',
        'NAME': 'db_name',
        'USER': 'my_user',
        'PASSWORD': '',
        'HOST': 'localhost'
    }
}

# Internationalization
# https://docs.djangoproject.com/en/1.6/topics/i18n/

LANGUAGE_CODE = 'pt-br'

TIME_ZONE = 'UTC'

USE_I18N = True

USE_L10N = True

USE_TZ = True


# Static files (CSS, JavaScript, Images)
# https://docs.djangoproject.com/en/1.6/howto/static-files/

STATIC_URL = /static/'


Andrews Medina

unread,
Apr 21, 2014, 11:52:29 PM4/21/14
to Django Brasil
Olá,

On Mon, Apr 21, 2014 at 2:39 PM, Frederico da Silva Santos
<fredsilva...@gmail.com> wrote:
> Você se refere ao caminho do STATIC_URL?

Não, a variável que define aonde os estáticos vão ser gerados é o "STATIC_ROOT".

De uma olhada em
https://docs.djangoproject.com/en/1.6/howto/static-files/#deployment.

Outra coisa, da forma que tu ta usando os locations no nginx, uma
prática recomendada pelo próprio nginx é usar o comando "root" no
lugar do "alias":
http://nginx.org/en/docs/http/ngx_http_core_module.html#alias

Valeu!

--
Andrews Medina
www.andrewsmedina.com

Ricardo Kamada

unread,
Apr 22, 2014, 1:41:02 AM4/22/14
to django...@googlegroups.com

Isso.... deve ser os caminhos no settings.py.
Da uma olhada qualquer coisa posta ai.

Até

--
Você está recebendo esta mensagem porque se inscreveu no grupo "Django Brasil" dos Grupos do Google.

Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para django-brasi...@googlegroups.com.
Para obter mais opções, acesse https://groups.google.com/d/optout.

Frederico da Silva Santos

unread,
Apr 23, 2014, 7:54:34 AM4/23/14
to django...@googlegroups.com
Resolvido aqui. Era o STATIC_ROOT mesmo que estava faltando.
Obrigado Ricardo e Andrews!
Reply all
Reply to author
Forward
0 new messages