主题文件的 Nginx 位置别名

主题文件的 Nginx 位置别名

我正在尝试将主题文件移出文档根目录。我使用 nginx 作为服务器,并尝试在位置块中使用别名和根指令。我尝试过的所有方法都不起作用,我怀疑是try_files里面的指令location /。我的主题文件位于/var/www/naturesflowllc/ui/assets

这是我的 nginx conf 文件。

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; }
}

我多次尝试,aliasroot似乎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

答案1

https://nginx.ru/en/docs/http/ngx_http_core_module.html#alias 当位置与指令值的最后一部分匹配时:

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/- “第一个位置(在 /tmp/www 中搜索索引文件),然后是第二个位置,因为我的 /tmp/www 中没有索引文件”

http://127.0.0.1/assets/some.js- “3d 位置(返回 /tmp/somedir/assets/some.js)”

它对我的 nginx 1.10.3 有效。如果不适合您,请提供您的 nginx 访问和错误日​​志。

相关内容