perf(nginx): 修复 JS 未压缩,静态资源加不可变缓存
nginx 1.21.1 起 mime.types 把 .js 标成 text/javascript,而 gzip_types 只写了 application/javascript,导致前端 JS 实际一直在裸传。补全类型列表, 并加上 application/json 让 API 响应也走压缩。 gzip_comp_level 此前用的是默认值 1,改为 6,实测 js+css 总量 3.85M → 3.44M。 /assets/ 下的产物文件名带内容 hash,加 immutable 永久缓存,省掉每次进页面 对 32 个 chunk 的条件请求;index.html 反过来设 no-cache,避免发版后刷不到新版。 location 里出现 add_header 会中断 http 级 add_header 的继承, 两个 block 都重新声明了原有的三个安全头。 Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
@@ -19,7 +19,18 @@ http {
|
||||
|
||||
gzip on;
|
||||
gzip_vary on;
|
||||
gzip_types application/javascript text/css;
|
||||
gzip_comp_level 6;
|
||||
gzip_min_length 1024;
|
||||
# nginx 1.21.1 起 mime.types 把 .js 标成 text/javascript,
|
||||
# 只写 application/javascript 会导致前端 JS 完全不压缩,两个都要留。
|
||||
# text/html 是内置的,不用也不能写在这里。
|
||||
gzip_types
|
||||
text/javascript
|
||||
application/javascript
|
||||
text/css
|
||||
application/json
|
||||
image/svg+xml
|
||||
text/plain;
|
||||
|
||||
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
|
||||
'$status $body_bytes_sent "$http_referer" '
|
||||
|
||||
Reference in New Issue
Block a user