피드로 돌아가기
How to Fix the ads.txt 500 Error on Next.js App Router with Vercel
Dev.toDev.to
Frontend

Vercel App Router의 라우팅 우선순위 충돌 해결을 통한 ads.txt 500 에러 제거

How to Fix the ads.txt 500 Error on Next.js App Router with Vercel

bi kai2026년 5월 15일4intermediate

Context

Next.js App Router 기반 프로젝트를 Vercel에 배포 시 public/ 디렉토리의 정적 파일보다 App Router의 매칭 시스템이 우선순위를 가지는 구조적 특성이 존재함. 이로 인해 .txt 확장자 인식 불가 상태에서 Vercel Edge Runtime이 500 Internal Server Error를 반환하는 병목 지점이 발생함.

Technical Solution

  • 정적 파일 서빙 방식에서 App Router의 Route Handler 방식으로 아키텍처 전환
  • app/ads.txt/route.ts 경로 설정을 통한 명시적 GET 핸들러 정의로 라우팅 우선순위 문제 해결
  • 정규표현식을 통한 'ca-' 프리픽스 제거 로직을 구현하여 AdSense 표준 규격 준수
  • Cache-Control 헤더에 'must-revalidate'를 설정하여 ID 변경 시 실시간 반영 구조 설계
  • 환경 변수(Environment Variable) 기반의 ID 관리로 스테이징 및 프로덕션 환경의 일관성 확보
  • Publisher ID 부재 시 빈 200 응답을 반환하는 예외 처리로 런타임 크래시 방지

- Vercel App Router 환경에서 특정 정적 파일이 500 에러를 일으키는지 확인 - public/ 내 파일 대신 Route Handler 도입을 통한 정밀한 응답 제어 검토 - 환경 변수 변경 후 반드시 재배포(Redeploy)를 수행하여 변경 사항 반영 확인 - 로컬 개발 환경(next dev)과 프로덕션 환경의 라우팅 동작 차이 검증

원문 읽기