2013-04-03 2 views
0

Я следую инструкциям в http://senko.net/en/django-nginx-gunicorn/, чтобы развернуть мое приложение django. Мое приложение работает под пулемётом, и я настроил nginx для обслуживания сайта. Все в порядке, за исключением того, что статические файлы просматриваются в подкаталоге «static» фактического каталога статических файлов.django + gunicorn + nginx wierdness

У меня есть следующий куплет для статических файлов в файле конфигурации Nginx:

location /static { 
    root /webapps/myproject/project_staticfiles; 
} 

где/WebApps/MyProject/project_staticfiles это место, где у меня есть все статические файлы (я использую manage.py collectstatic к поставьте там статические файлы). Однако они не обнаруживаются при доступе к сайту на порту, настроенном в конфигурации nginx. Error.log показывает, что они выглядят в каталоге глубже:/webapps/myproject/project_staticfiles/static.

Действительно, когда я создаю новый каталог «static» и помещаю туда все статические файлы, все будет найдено. В моем файле settings.py проекта у меня есть:

STATIC_URL = '/static/' 
STATIC_ROOT = '/webapps/myproject/project_staticfiles' 

Какая настройка вызывает это странное поведение?

ответ

1

Я думаю, что вы хотите использовать alias:

location /static { 
    alias /webapps/myproject/project_staticfiles; 
} 

Если вы читали документы на root, говорится:

корень указывает корень документа для запросов. Например, с этой конфигурацией:

location /i/ { 
    root /spool/w3; 
} 

Запрос на "/i/top.gif" возвратит файл "/spool/w3/i/top.gif". Вы можете использовать переменные в аргументе.

root добавляет каталог в FilePath, alias не происходит, поэтому, static добавляемый к вашему корню, чтобы сформировать /webapps/myproject/project_staticfiles/static

+0

Отлично, вот оно! Большое спасибо. – user1487178

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