Регулярное выражение местоположения Nginx для css и js

В качестве моей конфигурации я хотел бы обслуживать css и js в местоположении /luz_online_web, доступ только к /luz_online_web/*.css или .js через proxy_pass для http://110.134.0.20:8085/luz_online_web/.

server {
    server_name ~(?<name>[^.]+)\.dev\.abc\.io$;
    location  / {
      proxy_pass http://110.134.0.20:8085/luz_online_web/$name$request_uri;
      include /etc/nginx/klara-reverse.conf;

    }
    location ~* ^/luz_online_web/(.+\.(css|js))$ {
        rewrite ^/luz_online_web/(.*)$ /luz_online_web/$1 break;
        proxy_pass http://110.134.0.20:8085;
    }
}

Но файлы css и js по-прежнему не загружаются при доступе к веб-сайту. Файл CSS, JS находится в каталоге /luz_online_web, а другие файлы (HTML, PNG..) хранятся в каталоге /luz_online_web/name. Если я удалю фильтр и установлю местоположение /luz_online_web/, они могут быть загружены, путь к файлу js, например

/luz_online_web/javax.faces.resource/jsf.js;jsessionid=SnhEULxbunZ9F6OEGRtJrMmy

введите здесь описание изображения

Есть идеи?


person Tien Dung Tran    schedule 22.04.2020    source источник
comment
так в чем же разница между обычными файлами HTML и файлами CSS/JS? кажется, оба получают от прокси. Можете ли вы уточнить?   -  person JohnnyJS    schedule 22.04.2020
comment
@JonnieJS: обычные html-файлы можно загружать из luz_online_web/$name, тогда как css/js необходимо загружать из папки luz_online_web.   -  person Tien Dung Tran    schedule 22.04.2020
comment
и это тот же каталог. пожалуйста, попробуйте объяснить мне, где именно находится каждый ресурс. Внесите изменения в свой вопрос и постарайтесь добавить как можно больше деталей. Спасибо.   -  person JohnnyJS    schedule 22.04.2020
comment
@JonnieJS: это не то же самое. Файл CSS, JS находится в каталоге /luz_online_web, а другие файлы (HTML, PNG..) хранятся в каталоге /luz_online_web/name. Я только что обновил свой вопрос.   -  person Tien Dung Tran    schedule 22.04.2020
comment
Не могли бы вы привести один пример пути к файлу css и один пример пути к файлу png? мне кажется это одно и то же.   -  person JohnnyJS    schedule 22.04.2020


Ответы (1)


Моя проблема решена, я удаляю $ в конце местоположения регулярного выражения из-за .css и .js между URL-адресами, а не в конце.

location ~* ^/luz_online_web/(.+\.(css|js)) {
    rewrite ^/luz_online_web/(.*) /luz_online_web/$1 break;
    proxy_pass http://110.134.0.20:8085;
}
person Tien Dung Tran    schedule 22.04.2020