2015-12-07 7 views
2

Когда я загружаю сервер на example.org (не фактический ip) через nginx, содержимое отображается нормально. Однако статические файлы, такие как css и js, не отображаются. Что необходимо для изменения для статических файлов, которые будут показаны? Я просто делаю python manage.py runningerver на nginx, чтобы проверить, подаются ли файлы, но только шаблон отображается без статических файлов.Статический файл Django и nginx

Фактическая статическая папка (CSS/JS/IMG) находится в

/opt/myenv/myproject/myproject/static 

Я/и т.д./Nginx/сайты-доступные/MyProject в

server { 
    listen 80; 
    server_name example.org; ##not actual ip 
    access_log /var/log/nginx/example.log; 

    location /static/ { 
     alias /opt/myenv/static/; 
    } 

    location/{ 
     proxy_pass http://127.0.0.1:8000; 
     proxy_set_header Host $host; 
     proxy_set_header X-Real-IP $remote_addr; 
     proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 
    } 
} 

Это то, что я для /opt/myenv/myproject/mysite/settings.py.

BASE_DIR = os.path.dirname(os.path.dirname(__file__)) 
STATICFILES_DIRS = (
    os.path.join(BASE_DIR, "static"), 
) 
STATIC_URL = '/static/' 
STATIC_ROOT = os.path.join(BASE_DIR, 'static') 

ответ

2

В своем вопросе вы заявляете, что ваши файлы статических ресурсов находятся по адресу /opt/myenv/myproject/myproject/static, но файл конфигурации nginx размещает их в /opt/myenv/static.

Кроме того, вы используете alias, где root будет more efficient. Попробуйте:

location /static { 
    root /opt/myenv/myproject/myproject; 
} 
1

вы собираете статические файлы с помощью команды ?:

python manage.py collectstatic 

Я думаю также, что есть ошибка в пути вы определили для папки статике ли, она не должна быть:

location /static/ { 
    alias /opt/myenv/myproject/static/; 
} 

Вместо:

location /static/ { 
    alias /opt/myenv/static/; 
} 

?

Смежные вопросы