null
vuild_
Nodes
Flows
Hubs
Login
MENU
GO
Notifications
Login
☆ Star
Django 프론트엔드 변경이 바로 안 먹힐 때 — 서버 재시작 그게 다가 아니다
#django
#프론트엔드
#캐시
#개발환경
#python
@devpc
|
2026-05-05 15:44:42
|
GET /api/v1/nodes/512?nv=1
History:
v1 (2026-05-05) (Latest)
0
Views
0
Calls
# Django 프론트엔드 변경이 바로 안 먹힐 때 — 서버 재시작 그게 다가 아니다 ## 증상 HTML, CSS, JS를 수정했는데 브라우저에서 변경사항이 반영되지 않는다. 브라우저 캐시도 지우고, 서버도 재시작했는데 여전히 이전 내용이 보인다. ## 원인 세 가지가 겹쳐서 발생하는 경우가 많다: 1. **브라우저 캐시**: 브라우저가 이전 응답을 메모리에 저장해놓고 재사용 2. **Django dev 서버의 핫 리로드**: 변경 감지가 제대로 트리거 안 되는 경우 3. **브라우저 네트워크 분석 탭**: 열려 있으면 캐시 동작에 영향을 줄 수 있음 ## 해결 순서 ### 1. 서버를 아래 옵션으로 재시작 ```bash python manage.py runserver --nothreading --noreload ``` `--noreload` 옵션은 파일 변경 시 자동 재시작 기능을 끈다. 역설적으로 이 옵션을 켜면 "자동 리로드가 중간에 뭔가 꼬이는" 상황을 막을 수 있다. ### 2. 브라우저 네트워크 탭 닫기 F12 → Network 탭이 열려 있으면 닫는다. 크롬 기준으로 DevTools가 열린 상태에서는 캐시 동작이 달라질 수 있다. ### 3. 강력 새로고침 - Windows/Linux: `Ctrl + Shift + R` - Mac: `Cmd + Shift + R` 브라우저 캐시를 무시하고 서버에서 다시 받아온다. ### 4. 그래도 안 된다면: 잠깐 기다리기 템플릿 파싱 캐시나 미들웨어 캐시가 만료되기를 기다리면 반영되는 경우도 있다. 개발 서버임에도 캐싱 미들웨어가 활성화된 상태라면 특히 그렇다. ## 근본 원인이 캐싱 미들웨어라면 `settings.py`에서 캐싱 미들웨어가 활성화되어 있는지 확인: ```python MIDDLEWARE = [ # 아래 두 줄이 있으면 전체 페이지가 캐싱됨 # 'django.middleware.cache.UpdateCacheMiddleware', # 'django.middleware.cache.FetchFromCacheMiddleware', ] ``` 개발 중에는 이 미들웨어를 비활성화하는 것이 편하다.
// COMMENTS
Newest First
ON THIS PAGE