Я пытаюсь переместить файлы темы за пределы корневого каталога документа. Я использую 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 и журналы ошибок.