mime.types文件的核心作用是映射文件扩展名与MIME类型,供Nginx设置HTTP响应头中的Content-Type字段,确保浏览器正确解析静态资源;需通过include引入才生效,推荐用自定义文件覆盖而非直接修改原文件。

Nginx 安装后自带的 mime.types 文件,核心作用是告诉 Nginx:当它要返回某个后缀的文件(比如 .js、.svg、.woff2)时,该在 HTTP 响应头中设置哪个 Content-Type 值。这个值直接影响浏览器如何解析和处理该文件——设错可能导致字体不加载、JS 不执行、图片显示为乱码等。
mime.types 文件的核心功能
它是一个纯文本映射表,把文件扩展名(如 html、json、webp)和对应的 MIME 类型(如 text/html、application/json、image/webp)关联起来。Nginx 在处理静态文件请求时,会查这张表来决定响应头中的 Content-Type 字段。
注意:mime.types 本身不生效,必须被主配置(通常是 nginx.conf)通过 include mime.types; 这行引入,才参与实际响应逻辑。
常见需要修改 mime.types 的场景
- 新增现代前端资源类型,比如
.mjs(应设为application/javascript),否则 Chrome 可能拒绝执行 - 支持 Web 字体格式,如
.woff2(font/woff2)、.ttf(font/ttf),避免字体加载失败或控制台报 MIME 类型错误 - 正确识别 SVG 文件:默认可能只配了
image/svg+xml对应.svg,但若用作图标内联或 CSS 背景,需确保无拼写错误或遗漏 - 修复旧版 Nginx 默认未包含的类型,例如
.toml、.yml(开发配置文件需预览时)、.avif(新型图片格式)
安全修改 mime.types 的步骤
不建议直接编辑原始 mime.types(易被升级覆盖),推荐以下方式:
- 在
/etc/nginx/conf.d/或站点配置目录下新建一个自定义文件,例如custom.mime.types - 在里面添加或覆盖类型,格式严格遵循:
types {<br> application/javascript mjs;<br> font/woff2 woff2;<br> image/avif avif;<br>} - 在对应 server 或 http 块中,用
include /etc/nginx/conf.d/custom.mime.types;加载它(位置要在include mime.types;之后,确保覆盖生效) - 执行
sudo nginx -t检查语法,再sudo systemctl reload nginx生效
验证修改是否成功
用 curl 查看响应头最直接:
curl -I https://yoursite.com/example.woff2
观察输出中是否有类似:Content-Type: font/woff2
若匹配你设定的类型,说明生效;若仍是 application/octet-stream 或空,说明未命中映射或配置未重载。










