статические файлы с gunicorn, django и nginx

У меня есть проект django, и я хочу развернуть его с помощью gunicorn и nginx.

Пока все работает, но когда я добавляю поддомены, статические файлы не обслуживаются и моя страница выглядит ужасно!

Если вместо этого я использую локальные хосты, все работает идеально!

Здесь я оставляю свой nginx.conf:

server {
    listen 80 default;
    client_max_body_size 4G; 
    server_name mytest.dev;

    keepalive_timeout 5;

    # path for static files
    root /Users/danielrodriguez/workspace/mtt/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://localhost:8000;
    }   
}

У меня также есть это в моем файле hosts:

127.0.0.1   localhost
127.0.0.1   mytest.dev
255.255.255.255 broadcasthost
::1             localhost 
fe80::1%lo0 localhost

Как я могу заставить nginx работать так, как он работает, когда я набираю «localhost» в своем браузере, когда я набираю «mydev.test»? Практически все, что я хочу сделать, это обслуживать кучу сайтов на одном физическом сервере, используя что-то вроде виртуальных хостов в apache.

PD: Я также использую OS Lion на случай, если это поможет.


person danielrvt    schedule 02.12.2012    source источник


Ответы (1)


Кажется, у вас неправильная настройка root.

root /Users/danielrodriguez/workspace/mtt/static;

Вы должны проверить запрошенный URL-адрес для ваших файлов css. Предполагая, что у вас есть STATIC_URL = '/static/', ваш браузер, вероятно, захочет загрузить /static/css/styles.css или что-то в этом роде.

Итак, файл ./static/css/styles.css должен находиться в каталоге root.

Тогда справа root должно быть:

root /Users/danielrodriguez/workspace/mtt;

Конечно, это не очень хорошая идея - делать настройку root в корне вашего проекта. Таким образом, вы можете создать символическую ссылку для static и media, чтобы разделить директорию за пределами вашего проекта.

Надеюсь, это поможет.

person rudyryk    schedule 02.12.2012