【问题标题】:Nginx location regex for css and js用于 css 和 js 的 Nginx 位置正则表达式
【发布时间】:2020-04-22 17:43:20
【问题描述】:

作为我的配置,我想在 /luz_online_web 位置提供 css 和 js,只有访问 /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

有什么想法吗?

【问题讨论】:

  • 那么普通的 HTML 文件和 CSS/JS 文件有什么区别呢?似乎都来自代理。你能详细说明一下吗?
  • @JonnieJS:普通的 html 文件可以从 luz_online_web/$name 加载,而 css/js 需要从 luz_online_web 文件夹加载。
  • 它是 same 目录。请尝试向我解释每个资源的确切位置。请对您的问题进行编辑,并尝试添加尽可能多的详细信息。谢谢。
  • @JonnieJS:不一样。 CSS、JS 文件位于 /luz_online_web 目录,而其他文件(HTML、PNG..)存储在 /luz_online_web/name 目录中。我刚刚更新了我的问题。
  • 能否请您提供一个css文件路径示例和一个png文件路径示例?在我看来是一样的。

标签: regex nginx nginx-location nginx-reverse-proxy


【解决方案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;
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-09-11
    • 2017-04-11
    • 1970-01-01
    相关资源
    最近更新 更多