Nginx的接口文件

我尝试从azure blob服务angular度的应用程序,问题是,我不能用URI和正则expression式代理。

我的configuration是:

location /web { proxy_pass https://blob.com/web/index.html; } location ^~ /monitor { proxy_pass https://blob2.net/angular/index.html; } location ~* \.(js|map|jpg|jpeg|png|ico)$ { proxy_pass https://blob2.net/angular; } 

JS文件应该来自blob2 / angular,因为它们位于那里。 但有了这个configuration我有例外“proxy_pass不能有URI部分…”,这意味着proxy_path不能有正则expression式的URI。 好吧,所以我把最后一句话改成:

  location ~* \.(js|map|jpg|jpeg|png|ico)$ { rewrite ^ /angular$1; proxy_pass https://blob2.net; } 

但仍然不起作用。

更新更改configuration

  location ~* (\.(?:js|map|jpe?g|png|ico))$ { proxy_pass https://angularweb.blob.core.windows.net/angular/$1; } 

但现在的文件是404。在日志中没有什么是“31.168.50.6 – – [13 / Jun / 2017:10:28:53 +0000]”GET /inline.bundle.js HTTP / 1.1“404 216” – “”Mozilla / 5.0(Windows NT 10.0; Win64; x64)AppleW $“

你应该可以使用这个位置块:

 location ~* (\.(?:js|map|jpe?g|png|ico)$ { proxy_pass https://blob2.net/angular/$1; } 

在这里,我们将文件的文件名捕获到$1variables,然后在proxy_pass目标中使用它。

我也在正则expression式中结合了jpegjpg ,并通过将?:添加到expression式的开头,使得正则expression式组无法捕获。