diff --git a/book/300_architecture/313_프론트_구조_원칙.md b/book/300_architecture/313_프론트_구조_원칙.md index aa899b4..ca1cb54 100644 --- a/book/300_architecture/313_프론트_구조_원칙.md +++ b/book/300_architecture/313_프론트_구조_원칙.md @@ -202,11 +202,17 @@ src/ ## 12. 프론트엔드 캐싱 전략 -### 버전 파라미터 필수 +### 버전 파라미터 필수 (수동 빌드 시) - JS/CSS 파일: `?v=YYYYMMDD` 추가 (예: `app.js?v=20251204`) - 배포 후 버전 번호 업데이트 필수 -### nginx 캐시 제어 +### nginx SPA index.html 캐시 방지 (Vite 빌드 시 필수) +- Vite는 JS/CSS에 해시 파일명 자동 생성 (예: `index-D3r66P5F.js`) +- **index.html만 캐시 방지 필수**: `Cache-Control: no-store, no-cache, must-revalidate` +- index.html이 캐시되면 이전 해시 파일명 참조 → 배포 후 변경사항 미반영 +- nginx 설정 예시: `location = /goosefarm/index.html` 블록에 `add_header Cache-Control` 추가 + +### nginx 캐시 제어 (일반) - ETag 사용 시 Ctrl+F5로도 캐시 회피 어려움 - 버전 파라미터가 가장 확실한 방법