Задать вопрос
JastaFly
@JastaFly

Настроить отдачу файлов в Nginx?

Нужно настроить отдачу статических файлов в Nginx, для этого добавил следующий локейшен:
server {
    ....
    location = /url/to/js/file/script.js {
    root /path/to/directory/with/static/files/;
    expires 30d;
    try_files $uri $uri/ =404;
    error_page 404 /404.html;
    }

    location = /url/to/css/file/style.js {
    root /path/to/directory/with/static/files/;
    expires 30d;
    try_files $uri $uri/ =404;
    error_page 404 /404.html;
    }
   ...
}

И оно не работает. Файлы не подгружаются в консоли браузер ругается на 404-е ошибки. Подскажите в чём может быть проблема?
  • Вопрос задан
  • 220 просмотров
Подписаться 1 Простой 4 комментария
Решения вопроса 2
ky0
@ky0 Куратор тега Nginx
Миллиардер, филантроп, патологический лгун
В том, что, очевидно, файл у вас в /path/to/directory/with/static/files/script.js - а веб-сервер ищет его в
/path/to/directory/with/static/files/url/to/js/file/script.js
. Почитайте про префиксные локейшены и директиву alias.
Ответ написан
JastaFly
@JastaFly Автор вопроса
Всё заработало после того как я сменил в локейшене root, на alias и прописал полные пути до нужных файлов:
location = /url/to/js/file/first-script.js {
        alias /path/to/directory/with/static/files/first-script.js;
        expires 30d;
        try_files $uri $uri/ =404;
        error_page 404 /404.html;
    }

    location = /url/to/css/file/style.css {
        alias /path/to/directory/with/static/files/style.css;
        expires 30d;
        try_files $uri $uri/ =404;
        error_page 404 /404.html;
    }

    location = /url/to/js/file/second-script.js {
        alias /path/to/directory/with/static/files/second-script.js;
        expires 30d;
        try_files $uri $uri/ =404;
        error_page 404 /404.html;
    }
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы