React Build index.htmlํŒŒ์ผ์˜ ์˜๋ฌธ

๐Ÿ™‚ ๋ฐœ๋‹จ

  • ์ตœ๊ทผ ๊ธฐ์กด ํ”„๋กœ์ ํŠธ๋ฅผ ํƒ€์ž…์Šคํฌ๋ฆฝํŠธ๋กœ ๋ณ€ํ™˜ํ•˜๋ฉด์„œ, ์ปดํŒŒ์ผ์ด ์ž˜ ๋˜๋Š”์ง€ ํ™•์ธํ•˜๊ณ ์ž index.htmlํŒŒ์ผ์„ ๋กœ์ปฌ์—์„œ ์‹คํ–‰ํ•ด๋ณด์•˜๋‹ค.

๐Ÿ˜ก ๋ฌธ์ œ

  • ์ž˜ ๋ ๊บผ๋ผ ์ƒ๊ฐํ–ˆ์ง€๋งŒ, ๊ฐ์ข… ํŒŒ์ผ์„ ๋ถˆ๋Ÿฌ์˜ค๋Š” ์ฃผ์†Œ๊ฐ€ ์ž˜๋ชป๋˜์–ด์žˆ์—ˆ๊ณ , ํ˜น์‹œ๋‚˜ ํ•˜๋Š” ๊ฒฝ๋กœ๋ฅผ ์žฌ์„ค์ •ํ•ด๋ณด์•˜์ง€๋งŒ ์—ฌ์ „ํžˆ not found์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ–ˆ๋‹ค.

๋ถˆํŽธํ•œ ํ•ด๊ฒฐ

  • ๋ถˆํŽธํ•œ ํ•ด๊ฒฐ
  • ์œ„์˜ ์ฐธ๊ณ ํ•œ ๊ธ€์„ ๋”ฐ๋ผ์„œ package.json์— "homepage":"./"์†์„ฑ์„ ์ฃผ๋ฉด httpํ†ต์‹ ์ด ํ•„์š”์—†๋Š” ์ •์ ์ธ ๊ณจ๊ฒฉ์ด๋‚˜ style์€ ์ ์šฉ๋˜์–ด์žˆ์ง€๋งŒ, ๊ทธ ์™ธ์˜ ๊ฒƒ๋“ค์€ ์ผ์ ˆ ์ ์šฉ๋˜์–ด์žˆ์ง€ ์•Š์•˜๋‹ค.

stackoverflow์—์„œ ๋Œ€๋ถ€๋ถ„ ์‚ฌ๋žŒ๋“ค์ด, ํ•ด๋‹น ๋ฐฉ๋ฒ•์€ ์ „ํ˜€ ์ถ”์ฒœํ•˜์ง€ ์•Š๋Š” ๋ฐฉ๋ฒ•์ด๋ผ ํ•จ.

๐Ÿ˜… ํ•ด๊ฒฐ

  • ํ•ด๊ฒฐ์€ ํ–ˆ๋‹ค.
  • ๋นŒ๋“œ๋ฅผ ํ•  ๋•Œ, package.json์— hompage์†์„ฑ์ด ์—†๋‹ค๋ฉด ์•„๋ž˜์™€ ๊ฐ™์€ ๋ฌธ๊ตฌ๊ฐ€ ๋งˆ์ง€๋ง‰์— ๋œจ๋ฉด์„œ ์ •์ ์„œ๋ฒ„๋ฅผ ์šด์˜ํ•˜๋ผ๊ณ  ๋‚˜์˜จ๋‹ค.
1

ํ•ด๊ฒฐ ์ด์œ 

  • ๊ฐœ๋ฐœํ™˜๊ฒฝ ๋ฐ `serve -s build ์ž‘๋™ ์ด์œ 
  • ๊ฐœ๋ฐœ ๋ฐ, ์œ„์ฒ˜๋Ÿผ serve -s build์˜ ๋ช…๋ น์–ด๊ฐ€ ์‹คํ–‰๋˜์—ˆ์„ ๋•Œ์—๋Š” webpack์— ์ž‘์„ฑ๋œ๊ฒƒ์— ๋”ฐ๋ผ, devserver๊ฐ€ ์‹คํ–‰์ด ๋˜๊ณ  ๊ฑฐ์˜ ๋ชจ๋“  ์š”์ฒญ์„ paths.publicUrlOrPath + index.html๋กœ ๋ฆฌ๋‹ค์ด๋ ‰์…˜ ํ•œ๋‹ค๊ณ  ํ•œ๋‹ค.

๐Ÿค” ๊ทผ๋ฐ ์™œ?

  • ํ•ด๊ฒฐ์€ ํ–ˆ๋Š”๋ฐ, ์™œ React๋กœ ๋นŒ๋“œ ํ•œ ์•ฑ์€ index.html๋งŒ์œผ๋กœ ๊ตฌ๋™์ด ์•ˆ๋ ๊นŒ?

์˜ˆ์ƒ

  • ์•”๋งŒ๋ด๋„ React-Router๊ฐ€ ์ž‘๋™๋˜์ง€ ์•Š์•„, ๊ธฐ๋ณธ๊ณจ๊ฒฉ ์™ธ์˜ ์ปดํฌ๋„ŒํŠธ๋“ค์ด ์ƒ์„ฑ๋˜์ง€ ์•Š๋Š”๊ฒƒ ๊ฐ™๋‹ค.
  1. Header๋Š” Route Component๊ฐ€ ์•„๋‹Œ ๊ธฐ๋ณธ์ ์œผ๋กœ ๋ณด์ด๋Š” ์ปดํฌ๋„ŒํŠธ๋ผ ํ˜•์„ฑ์ด ๋˜๋Š” ๊ฒƒ. ๊ทธ ์™ธ์˜, <Route path Component={}/> ํ˜•์‹์€ ์ผ์ ˆ ์ƒ์„ฑ ์•ˆ๋จ
  2. ํ™•์‹ ์„ ๊ฐ€์ง„ ๋˜ ๋‹ค๋ฅธ ์ด์œ ๋Š”, ์œ ์ € ๊ฒ€์ƒ‰์„ ํ•˜์˜€์„ ๋•Œ history ๊ด€๋ จ ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ•˜๋Š”๊ฒƒ์„ ๋ณด์•„, React-Router์—๋Œ€ํ•ด ์ „ํ˜€ ์ธ์ง€ํ•˜๊ณ ์žˆ์ง€ ๋ชปํ•œ๊ฑฐ ๊ฐ™์Œ
  • ์ •์  ์„œ๋ฒ„์™€ ํ•จ๊ป˜ ์‹คํ–‰ํ–ˆ์„ ๋•Œ http://localhost:3000/loa-hands, index.htmlํŒŒ์ผ์„ ๊ทธ๋ƒฅ ์‹คํ–‰์‹œ์ผฐ์„ ๋•Œ, file:///..../index.html์ด๋‹ค.
  • react์™€ ๊ฐ™์ด SPA์˜ ๊ฒฝ์šฐ ์„œ๋ฒ„์—์„œ ์ดˆ๊ธฐ์— index.html์„ ๋˜์ ธ์ฃผ๊ณ  ํด๋ผ์ด์–ธํŠธ ์‚ฌ์ด๋“œ์—์„œ ๋ผ์šฐํŒ…์ด ์ด๋ค„์ง€๋Š”๋ฐ, ์œ„์™€๊ฐ™์€ file:///..../index.htmlํ˜•์‹์˜ ์ฃผ์†Œ์—์„œ๋Š” react-router๊ฐ€ path๋ฅผ ์ฝ์ง€ ๋ชปํ•˜๋Š”๊ฒŒ ์•„๋‹Œ๊ฐ€ ์กฐ์‹ฌ์Šค๋Ÿฝ๊ฒŒ ์˜ˆ์ƒํ•ด๋ณธ๋‹ค.

์–ด๋”” ์ข€ ๊ฐ€๋ ค์šด๊ณณ์„ ๊น”๋”ํ•˜๊ฒŒ ๊ธ์–ด์ฃผ๋Š” ๊ธ€์ด ์—†๋‚˜..


@SangMin
๐Ÿ‘† H'e'story

๐Ÿš€GitHub