nginx - 配置 Nginx 以根据浏览器类型有条件地提供静态内容
问题描述
我有两个名为“esc6”和“esc5”的静态内容包,用于支持 esc6 和 esc5 的浏览器。我应该如何编写 nginx.conf 文件以根据 $http_user_agent 值有条件地切换位置指令。
前伪代码:
如果 $http_user_agent 包含“chrome || firefox || safari”,则 esc6-bundle 否则 esc5-bundle
解决方案
您应该使用map
指令。有关详细信息,请参阅此文档。
例如:
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;
}
...
}
推荐阅读
- php - Wordpress 网站昨晚宕机了
- amazon-web-services - CDN vs S3在同一个区域,那么CDN有什么用
- liferay - 如何自定义 Liferay Form 发送的电子邮件
- tensorflow - 为什么我不能将 GPU 与 tensorflow 一起使用?
- docusignapi - DocuSign - 在没有 API 身份验证的情况下将信封发送到电子邮件
- load-testing - 在加特林有条件地保存响应
- javascript - “无法对未安装的组件执行 React 状态更新。” 仅当功能组件是 Child 时
- java - ConsumerRecords 在 Kafka、Java 中始终为空,但 Future
isDone 方法结果为真 - java - 带有字符串参数的休眠查询不使用撇号
- asp.net - Task.Factory.StartNew 以管理员身份启动新线程