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 @@
-
+
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