From ac1ab7d8c017a5197b09f4ac2d61a7bc7a904d9c Mon Sep 17 00:00:00 2001 From: zenn Date: Tue, 23 Jun 2026 15:57:00 +0900 Subject: [PATCH] =?UTF-8?q?v4.0.6:=20output.css=20CDN=20=EC=BA=90=EC=8B=9C?= =?UTF-8?q?=20=EB=AC=B4=ED=9A=A8=ED=99=94=20=EB=B0=8F=20nginx=20CSS=20?= =?UTF-8?q?=EC=BA=90=EC=8B=9C=20=EC=A0=95=EC=B1=85=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit HTML은 갱신됐으나 구 output.css가 CDN에 남아 Tailwind 레이아웃이 깨지던 문제를 ?v= 쿼리와 CSS must-revalidate로 해결한다. Co-authored-by: Cursor --- VERSION | 2 +- admin.html | 2 +- deckHistory.html | 2 +- docs/deploy.md | 18 +++++++++++++++++- docs/update.md | 8 ++++++++ login.html | 4 ++-- nginx/default.conf | 11 +++++++++-- preset.html | 2 +- signup.html | 2 +- 9 files changed, 41 insertions(+), 10 deletions(-) diff --git a/VERSION b/VERSION index e5d4cf3..c5c9ea8 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -v4.0.5 +v4.0.6 diff --git a/admin.html b/admin.html index 986dd64..ccbc76f 100644 --- a/admin.html +++ b/admin.html @@ -3,7 +3,7 @@ - + 관리자 - UNIARE diff --git a/deckHistory.html b/deckHistory.html index d2df110..36d4e76 100644 --- a/deckHistory.html +++ b/deckHistory.html @@ -4,7 +4,7 @@ - + 내 덱 관리 - UNIARE diff --git a/docs/deploy.md b/docs/deploy.md index c99b037..09dc840 100644 --- a/docs/deploy.md +++ b/docs/deploy.md @@ -100,7 +100,23 @@ API가 카드 데이터를 메모리에 저장하므로 `datas/` 변경 시 API ### HTML·일반 CSS·프론트 JavaScript 변경 -`git pull --ff-only`와 `git lfs pull`을 실행하고 브라우저를 강력 새로고침한다. 컨테이너 재시작은 필요 없다. +NAS는 npm이 없어도 된다. `style/output.css`는 로컬에서 빌드해 Git에 포함되므로 **`git pull`만 하면** 스타일이 반영된다. + +```bash +git pull --ff-only +git lfs pull +``` + +배포 후 확인 (NAS 프로젝트 폴더): + +```bash +wc -c style/output.css # 약 55000 (55KB) — 44000대면 구버전, pull 누락 +head -1 login.html # output.css?v= 버전 쿼리 포함 여부 +``` + +브라우저에서도 `개발자 도구 → Network → output.css` 크기·상태를 확인한다. Cloudflare를 쓰면 구 CSS가 `immutable`로 남을 수 있어 HTML에 `?v=` 쿼리를 붙인다 (v4.0.6+). + +`nginx/default.conf`를 변경했다면 `docker compose -f docker-compose.prod.yml up -d --build uniare-web`으로 웹 컨테이너만 재빌드한다. HTML·`style/`만 바뀐 경우 컨테이너 재시작은 필요 없다. ## 4. 전체 업데이트 diff --git a/docs/update.md b/docs/update.md index 0a7f15c..754ea63 100644 --- a/docs/update.md +++ b/docs/update.md @@ -1,5 +1,13 @@ # 업데이트 이력 +## 2026-06-23 / v4.0.6 — CSS 캐시·배포 반영 수정 + +### 수행 작업 +- 운영 확인: `login.html`은 갱신됐으나 `output.css`가 구버전(44KB) + CDN 7일 immutable 캐시로 Tailwind 클래스 미적용 +- 로그인·회원가입·내 덱·공개 덱·관리자: `output.css?v=4.0.6` 쿼리로 캐시 무효화 +- `nginx/default.conf`: CSS는 `must-revalidate` 1시간, JS·이미지는 기존 7일 유지 +- NAS 배포 시 `git pull` 후 `wc -c style/output.css`로 약 55KB 확인 (`docs/deploy.md`) + ## 2026-06-23 / v4.0.5 — 로그인·덱·관리자 Tailwind 레이아웃 통합 ### 수행 작업 diff --git a/login.html b/login.html index 1a1782a..0a432b3 100644 --- a/login.html +++ b/login.html @@ -3,7 +3,7 @@ - + 로그인 - UNIARE @@ -41,7 +41,7 @@

-
v4.0.5
+
v4.0.6
diff --git a/nginx/default.conf b/nginx/default.conf index edf5852..e57b0f1 100644 --- a/nginx/default.conf +++ b/nginx/default.conf @@ -23,8 +23,15 @@ server { client_max_body_size 25m; } - # 정적 자산 캐시 - location ~* \.(js|css|png|jpg|jpeg|gif|webp|ico|svg|woff2?)$ { + # CSS — 배포 후 즉시 반영 (immutable 사용 안 함) + location ~* \.css$ { + expires 1h; + add_header Cache-Control "public, must-revalidate"; + try_files $uri =404; + } + + # 기타 정적 자산 + location ~* \.(js|png|jpg|jpeg|gif|webp|ico|svg|woff2?)$ { expires 7d; add_header Cache-Control "public, immutable"; try_files $uri =404; diff --git a/preset.html b/preset.html index 2784cc4..99db838 100644 --- a/preset.html +++ b/preset.html @@ -4,7 +4,7 @@ - + 공개 덱 - UNIARE diff --git a/signup.html b/signup.html index 96773bd..502e59e 100644 --- a/signup.html +++ b/signup.html @@ -3,7 +3,7 @@ - + 회원가입 - UNIARE