Назад | Перейти на главную страницу

Псевдоним местоположения Nginx для файлов темы

Я пытаюсь переместить файлы темы за пределы корневого каталога документа. Я использую nginx в качестве сервера и пробовал использовать псевдонимы и корневые директивы в блоке местоположения. Ничего из того, что я пробовал, не работает, и я подозреваю, что это try_files директива внутри location /. Мои файлы тем находятся в папке по адресу /var/www/naturesflowllc/ui/assets

Вот мой файл конфигурации nginx.

server {
    listen 80;
    listen [::]:80;
    server_name my.beupnow.dev.kahunacoding.com;

    root /var/www/naturesflowllc/mybeupnow/public_html;
    index index.php index.html index.htm;

    location / {
         try_files $uri $uri/ /index.php$is_args$args;
    }

    location ~ \.php$ {
        try_files $uri /index.php =404;
        fastcgi_read_timeout 180;
        fastcgi_pass php-upstream;
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params;
    }

    location /assets/ {
       alias /var/www/naturesflowllc/ui/assets/;
       # root /var/www/naturesflowllc/ui/;

       autoindex off;
       # autoindex on;
    }

    location ~ /\.ht {
        deny all;
    }

    error_log  /var/www/naturesflowllc/application/logs/my_beupnow_error.log debug;
    access_log /var/www/naturesflowllc/application/logs/my_beupnow_access.log;
    location = /favicon.ico { access_log off; log_not_found off; }
    location = /robots.txt  { access_log off; log_not_found off; }
}

я пробовал alias и root и autoindex включается и выключается, кажется, ничего не работает.

РЕДАКТИРОВАТЬ: Итак, я хочу, чтобы мои активы обслуживались следующим образом:

<link href="/assets/global/plugins/font-awesome/css/font-awesome.min.css" rel="stylesheet" type="text/css" />

и это:

<script src="/assets/global/plugins/jquery.min.js" type="text/javascript"></script>

из моей папки ui, которая выглядит так:

|____assets
| |____apps
| | |____css
| | | |____inbox.css
| | | |____inbox.min.css
| | | |____ticket.css
| | | |____ticket.min.css
| | | |____todo-2.css
| | | |____todo-2.min.css
| | | |____todo.css
| | | |____todo.min.css
| | |____img
| | |____scripts
| | | |____calendar.js
| | | |____calendar.min.js
| | | |____inbox.js
| | | |____inbox.min.js
| | | |____todo-2.js
| | | |____todo-2.min.js
| | | |____todo.js
| | | |____todo.min.js
| |____global
| | |____css
| | | |____components-md.css
| | | |____components-md.min.css
| | | |____components-rounded.css
| | | |____components-rounded.min.css
| | | |____components.css
| | | |____components.min.css
| | | |____plugins-md.css
| | | |____plugins-md.min.css
| | | |____plugins.css
| | | |____plugins.min.css
| | |____img
| | | |____accordion-plusminus.png
| | | |____ajax-loading.gif
| | | |____ajax-modal-loading.gif
| | | |____datatable-row-openclose.png
... (truncated)

Я хочу удалить отсюда папку с ресурсами /var/www/naturesflowllc/mybeupnow/public_html и переместите его в /var/www/naturesflowllc/ui/assets/

Надеюсь, это проясняет то, чего я пытаюсь достичь.

РЕДАКТИРОВАТЬ: Я потратил на это пару часов только для того, чтобы узнать, что я редактировал неправильный файл nginx.conf 8- (. Работает так, как должен, либо с root или alias.

https://nginx.ru/en/docs/http/ngx_http_core_module.html#alias Когда location совпадает с последней частью значения директивы:

location /images/ {
    alias /data/w3/images/;
}

это лучше использовать рут вместо этого директива:

location /images/ {
    root /data/w3;
}

Это твое дело.


Я создаю для вас пример и пробовал его на своем ubuntu:

server {
        listen 80;
        server_name 127.0.0.1;
        root /tmp/www/;

        # 1s location
        location / {
            try_files $uri $uri/ /index.php;
        }

        # 2nd location
        location ~ \.php$ {
            proxy_pass http://127.0.0.1:8080;
        }

        #3d location
        location /assets/ {
        root /tmp/somedir/;
        }
}

http://127.0.0.1/ - «1-е место (поиск индексного файла в / tmp / www), затем 2-е место, потому что в моем / tmp / www нет индексного файла»

http://127.0.0.1/assets/some.js - «3D-местоположение (возвращает /tmp/somedir/assets/some.js)»

У меня работает с nginx 1.10.3. Если не для вас, предоставьте доступ к nginx и журналы ошибок.