配置 Nginx 以根据浏览器类型有条件地提供静态内容
Configure Nginx to serve static content conditionally based on the browser type
我有两个名为 "esc6" 和 "esc5" 的静态内容包,用于支持 esc6 和 esc5 的浏览器。我应该如何编写 nginx.conf 文件以根据 $http_user_agent 值有条件地切换位置指令。
Ex伪代码:
如果 $http_user_agent 包含 "chrome || firefox || safari" 那么 esc6-bundle
否则 esc5-bundle
在 Nginx 配置中试试这个
location / {
if (($http_user_agent ~ "Chrome") || $http_user_agent ~ "firefox" ) || {
rewrite ^ esc6-bundle ;
}
rewrite ^ esc5-bundle ;
}
希望对您有所帮助
您应该使用 map
指令。有关详细信息,请参阅 this document。
例如:
map $http_user_agent $bundle {
default /js/esc5-bundle.js;
~*Chrome /js/esc6-bundle.js;
~*Firefox /js/esc6-bundle.js;
~*Safari /js/esc6-bundle.js;
}
server {
...
location = /js/bundle.js {
try_files $bundle =404;
}
...
}
我有两个名为 "esc6" 和 "esc5" 的静态内容包,用于支持 esc6 和 esc5 的浏览器。我应该如何编写 nginx.conf 文件以根据 $http_user_agent 值有条件地切换位置指令。
Ex伪代码:
如果 $http_user_agent 包含 "chrome || firefox || safari" 那么 esc6-bundle 否则 esc5-bundle
在 Nginx 配置中试试这个
location / {
if (($http_user_agent ~ "Chrome") || $http_user_agent ~ "firefox" ) || {
rewrite ^ esc6-bundle ;
}
rewrite ^ esc5-bundle ;
}
希望对您有所帮助
您应该使用 map
指令。有关详细信息,请参阅 this document。
例如:
map $http_user_agent $bundle {
default /js/esc5-bundle.js;
~*Chrome /js/esc6-bundle.js;
~*Firefox /js/esc6-bundle.js;
~*Safari /js/esc6-bundle.js;
}
server {
...
location = /js/bundle.js {
try_files $bundle =404;
}
...
}