Как обслуживать статические файлы из разных мест в NGINX
Я хочу обслуживать статические файлы из двух разных приложений Django. Один статический файл для приложения администратора, а другой статический файл для приложения страниц. Примечание: Я знаю о команде collectstatic. Я хотел бы узнать, есть ли способ обслуживать статические файлы из двух разных каталогов в каталоге /static/. Если одно расположение не работает, проверьте другое расположение.
Места расположения статических файлов:
/webapps/project/admin/static и /webapps/project/pages/static
.
location /static/ {
alias /webapps/project/admin/static/;
alias /webapps/project/pages/static/;
}
Возникает ошибка дублирования директивы alias
Вот что я хочу иметь. Проверять файлы в @static, если файл не найден, проверять в блоке @static2.
server {
server_name x.x.x.x;
client_max_body_size 8M;
access_log /webapps/logs/project/nginx-access.log;
error_log /webapps/logs/project/nginx-error.log;
location /static/ {
try_files $uri @static @static2;
}
location @static {
root /webapps/project/pages/;
}
location @static2 {
root /webapps/project/admin/;
}
}
Как мне обслуживать оба статических файла из двух каталогов.
Вы можете использовать try_files
для проверки двух путей, но вам нужно установить root
на общий родительский каталог.
Например:
location /static/ {
root /webapps/project;
try_files /pages$uri /admin$uri =404;
}