Как обслуживать статические файлы из разных мест в 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;
}
Вернуться на верх