From b96aad049fe4b9f38f184da107710d588655fdde Mon Sep 17 00:00:00 2001 From: "Zimin A.N." Date: Fri, 8 May 2026 09:22:15 +0300 Subject: [PATCH] =?UTF-8?q?fix(docs/nginx):=20=D1=83=D0=B1=D1=80=D0=B0?= =?UTF-8?q?=D1=82=D1=8C=20try=5Ffiles=20=D0=B2=20unhashed=20fallback=20?= =?UTF-8?q?=E2=80=94=20alias=20bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit nginx с `alias` имеет известный bug: `try_files $uri` резолвит $uri от document root, не от alias path. Для hashed assets (первое regex location) try_files уже был убран ранее, но оставался в fallback unhashed location — из-за этого `/docs/_assets/tabs-extension.js` (и .css) валились в 404 несмотря на наличие файлов в /usr/share/nginx/html/_assets/. Теперь fallback просто alias'ит без try_files. Если файла нет — nginx сам отдаст 404 от open() failure (нормальное поведение). --- docs/nginx.conf | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/docs/nginx.conf b/docs/nginx.conf index 9556e7d..9aa9b08 100644 --- a/docs/nginx.conf +++ b/docs/nginx.conf @@ -35,12 +35,14 @@ server { expires 1y; add_header Cache-Control "public, immutable"; } - # Non-hashed assets (fallback). + # Non-hashed assets (fallback). НЕ добавлять `try_files $uri =404` — + # nginx bug: с `alias` $uri резолвится по document root, а не по alias path, + # → ложные 404 на легитимные файлы (tabs-extension.js падает в эту дыру). + # Если файла нет — alias сам отдаст 404 от open() failure. location ~* ^/docs/((_bundle|_assets)/.*\.(css|js|woff2?|ttf|eot|svg|png|jpg|jpeg|ico|map|json))$ { alias /usr/share/nginx/html/$1; expires 1y; add_header Cache-Control "public, immutable"; - try_files $uri =404; } # Documentation pages (HTML).