共计 1193 个字符,预计需要花费 3 分钟才能阅读完成。
导读 | nginx 作为一个 http 服务器, 在功能实现方面和性能方面都表现的非常优越, 下面这篇文章主要给大家介绍了关于修改 Nginx 配置返回指定 content-type 的相关资料, 需要的朋友可以参考下 |
今天前端的同学向我请教了一个 Nginx 服务配置的问题。我作为组里的底层开发,当然是对此类问题还是有信心的。因为我私下里对 Nginx 也是学习了一点,再不济通过丰富的 google 经验,解决此类配置问题也是不在话下的 O(∩_∩)O。但是问题并没有我想象的那么简单,花费了我不少时间 (╯□╰)。不多废话了,直接上需求。
Nginx 配置中一般根据 conf/mime.types 文件中配置来根据文件扩展名(文件扩展名对大小写不敏感)指定响应头中的 content-type 字段。mime.types 文件中主要使用了 types 配置,如下面配置就表明 *.css 文件的响应头中 conntent-type: text/css
types {text/css css;}
但是现在我们不想使用默认配置中的 types 规则,需要指定 css 文件返回特定的 conntent-type 字段(比如加入指定编码参数 conntent-type: text/css; charset:utf-8),这时候应该如何配置呢?
走过的弯路(想直接看答案的同学可以跳过):
最后还是通过 Nginx 官方文档找到了好的解决方案(http://nginx.org/en/docs/http/ngx_http_core_module.html#types)
要指定某个 location 块对所有的请求返回相同的 MIME 类型 ”application/octet-stream”,以下配置可以被使用:
location /download/ {types {}
default_type application/octet-stream;
}
简要分析以下以上两行指令做了什么,第一行指令设置 types 配置为空(相当于取消了默认的 types 配置),第二行指令就简单了指定了 default_type。有了以上 2 行配置,那么我们就可以使用 location 块的正则匹配功能指定 css 文件返回指定 content-type 了。
location ~ .*\.css$ {types {} default_type 'text/css; charset:utf-8';
}
怎么样,是不是看起来很简单?但是我就是没有在中文互联网上搜索到有用的答案(也有可能是我搜索的关键字不对),所以在此记录一下,希望对大家有帮助。