210918 개발기둝: netlify - μƒˆλ‘œκ³ μΉ¨ μ—λŸ¬

2021. 9. 18. 23:15γ†πŸ“” TIL

πŸ“Œ  React - Netlify, Redirection μ—λŸ¬

λ¦¬μ•‘νŠΈ μ„œλ²„λ₯Ό netlify λ₯Ό 톡해 정상 λ°°ν¬ν–ˆλ‹€.

이 λ•Œ μƒˆλ‘œκ³ μΉ¨μ„ ν•˜λ©΄ μ•„λž˜μ™€ 같은 μ—λŸ¬λ©”μ‹œμ§€κ°€ λ‚˜νƒ€λ‚œλ‹€.

page not found λŠ” 404 μ—λŸ¬λ‘œ, ν˜„μž¬ url μ—μ„œ 찾고자 ν•˜λŠ” μžμ›μ„ λͺ»μ°Ύμ•˜μ„ λ•Œ λ°œμƒν•œλ‹€.

이전 κΉŒμ§„ μ •μƒμ μœΌλ‘œ 보이던 화면이 μ™œ μƒˆλ‘œκ³ μΉ¨ 이후엔 보이지 μ•Šμ„κΉŒ?

 

✏️  원인

λ‚΄ μ„€μ •μ—μ„œ λ¦¬μ•‘νŠΈκ°€ 졜초 접속할 λ•Œμ˜ url 은   /   μ΄λ‹€.

그리고 이 λ•Œ index.html 을 μ½λŠ”λ‹€. 즉 ν•΄λ‹Ή url 에 λŒ€ν•œ μžμ›μ€ index.html 둜 μ •ν•΄μ Έ μžˆλ‹€.

 

ν•˜μ§€λ§Œ 화면을 λ„˜κΈ°λ©΄μ„œ λΌμš°νŒ…λœ url 이 예λ₯Ό λ“€μ–΄ /a ν˜Ήμ€ /b κ°€ 됐을 땐, 각 url 에 λ§žλŠ”  μžμ›μ΄ μ‘΄μž¬ν•˜λŠ”κ°€? 그렇지 μ•Šλ‹€.

index.html 처럼 정해진 μžμ›μ΄ μ—†λ‹€. (react λŠ” single page application 이기 λ•Œλ¬Έμ΄λ‹€)

 

즉 /a , /b λΌλŠ” url μ—μ„œ μƒˆλ‘œκ³ μΉ¨μ„ ν•˜λ©΄, / 와 달리 κ³§λ°”λ‘œ 내렀쀄 μžμ›μ΄ μ‘΄μž¬ν•˜μ§€ μ•ŠκΈ° λ•Œλ¬Έμ— 404 μ—λŸ¬κ°€ λ°œμƒν•˜λŠ” 것이닀.

 

πŸ‹  ν•΄κ²° 

κ·Έλ ‡λ‹€λ©΄ 각 /a, /b μ΄λž€ url 에 κ³§λ°”λ‘œ μ ‘κ·Όν•˜λ”λΌλ„, 보여쀄 μžμ›λ§Œ 있으면 404 μ—λŸ¬λ₯Ό ν”Όν•  수 μžˆλ‹€. 

λ°”λ‘œ index.html 을 보여주면 λœλ‹€. 

μš°μ„  public 폴더 내뢀에 _redirects νŒŒμΌμ„ μƒμ„±ν•œλ‹€. ν™•μž₯μžλŠ” λ”°λ‘œ μ—†λ‹€.

그리고 ν•΄λ‹Ή 파일 내뢀에 μ•„λž˜ μ½”λ“œλ₯Ό μž‘μ„±ν•œλ‹€.

/* /index.html 200

μ΄λŠ” μ–΄λ– ν•œ 경둜둜 듀어와도 ( /* ) , 

200 μƒνƒœμ½”λ“œλ₯Ό λ‚΄λ €μ£Όλ©°, index.html νŒŒμΌμ„ λ Œλ”λ§ ν•˜κ² λ‹€λŠ” μ˜λ―Έμ΄λ‹€. 

ν•΄λ‹Ή λ‚΄μš©μ„ μž‘μ„± ν›„ λΉŒλ“œν•˜μ—¬ λ°°ν¬ν•˜λ©΄ μƒˆλ‘œκ³ μΉ¨ μ—λŸ¬κ°€ 잘 ν•΄κ²° 된 것을 확인할 수 μžˆλ‹€.