У меня есть приложение django и nginx
У меня есть django приложение и nginx, из браузера оно обращается к файлу /static.
например
http://example.com/static/file.png
Однако мое приложение имеет файлы в каталоге /staticroot.
http://example.com/staticroot/file.png
показывает изображение.
Итак, я установил на nginx.
location /static {
alias /staticroot;
}
Как бы это не выглядело
Моя среда - режим Debug.
Мои настройки py выглядят следующим образом,
STATIC_URL = '/static/'
STATICFILES_DIRS = (
os.path.join(BASE_DIR, 'static'),
)
STATIC_ROOT = os.path.join(config("PROJ_PATH"), 'staticroot')
Как я могу это исправить?
Для того, чтобы обслуживать содержимое staticroot вы должны переименовать ваши STATIC_URL='/staticroot/' & в файле nginx
location /staticroot/ {
alias /home/your_username/project_name;
}
Когда запрос приходит на /staticroot/somefile Nginx будет искать каталог с именем staticroot в файловой системе и будет обслуживать предоставленный файл.
Поэтому, когда вы определяете url для статического или медиа контента, убедитесь, что у вас есть каталог с таким же именем.
Для получения дополнительной информации посмотрите Serving Static Content на Nginx docs.
в /etc/nginx/sites-available/you_project
набор
location /static/ {
root /home/your_admin_name/your_project_folder_name;
}
в settings.py
STATIC_URL = '/static/'
STATICFILES_DIRS = [
os.path.join(BASE_DIR, 'static'),
]