[Django] collectstatic

๐ŸŒŸDjango collectstatic

๐ŸŽฏstatic ํŒŒ์ผ ์ฒ˜๋ฆฌ ๊ณผ์ •

staticํŒŒ์ผ์ด ํฌํ•จ๋œ ํ”„๋กœ์ ํŠธ๋ฅผ ์„œ๋ฒ„๋กœ ๋ฐฐํฌํ•˜๊ธฐ ์œ„ํ•ด์„  ํฌ๊ฒŒ ๋‘๊ฐ€์ง€์˜ ๊ณผ์ •์„ ๊ฑฐ์ณ์•ผ ํ•ฉ๋‹ˆ๋‹ค.

  1. static ํŒŒ์ผ์˜ ์œ„์น˜๋ฅผ ์„ค์ •ํ•ด์ฃผ๊ธฐ
  2. ์œ„์น˜๋กœ ๊ฐ€์„œ staticํŒŒ์ผ์„ ํ•œ๊ณณ์— ๋ชจ์œผ๊ธฐ

์œ„์˜ ๊ณผ์ •์„ ์ˆ˜ํ–‰ํ•˜๊ธฐ ์œ„ํ•˜์—ฌ ํ•ด์•ผ ํ•  ์ผ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

  1. ์•ฑ ๋‚ด์— static ํด๋”๋ฅผ ๋งŒ๋“ค์–ด ์œ„์น˜๋ฅผ ์ง€์ •ํ•˜๊ธฐ
  2. static ํด๋”์œ„์น˜๋ฅผ ์žฅ๊ณ ์—๊ฒŒ ์•Œ๋ ค์ฃผ๊ธฐ(settings.py)
  3. python manage.py collectstatic ์„ ์‹คํ–‰ํ•˜์—ฌ ๋ชจ์•„์ฃผ๊ธฐ(ํŒŒ์ผ์„ ๋ณต์‚ฌ)

+)static ํŒŒ์ผ์„ ์™œ ๋ชจ์•„์ค˜์•ผํ•˜๋Š”๊ฑธ๊นŒ์š”?๐Ÿค”

์šฐ๋ฆฌ๊ฐ€ ํ•˜๊ณ ์žˆ๋Š” Django๋Š” ์‹ค์งˆ์ ์œผ๋กœ ์›น์„œ๋ฒ„๊ฐ€ ์•„๋‹ˆ๋ผ ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๊ฐœ๋ฐœํ•˜๋Š” ํ”„๋ ˆ์ž„์›Œํฌ์ž…๋‹ˆ๋‹ค. ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์€ ์›น์„œ๋ฒ„๊ฐ€ ๋ฐ›์€ ์š”์ฒญ์„ ๋„˜๊ฒจ์ฃผ๋ฉด ๋กœ์ง์— ๋งž์ถ”์–ด ๋ฐ์ดํ„ฐ๋ฅผ ์ฒ˜๋ฆฌํ•œ ํ›„ ์›น์„œ๋ฒ„์—๊ฒŒ ๋Œ๋ ค์ฃผ์–ด ์‚ฌ์šฉ์ž์—๊ฒŒ ์‘๋‹ตํ•˜๊ฒŒ ํ•˜๋Š” ์—ญํ• ์„ ํ•ฉ๋‹ˆ๋‹ค.

ํ•˜์ง€๋งŒ ์‚ฌ์‹ค ์‚ฌ์šฉ์ž์—๊ฒŒ ์‘๋‹ตํ•˜๋Š” ๊ฒƒ์€ ์›น์„œ๋ฒ„ ์ž์ฒด์—์„œ ํ•  ์ˆ˜ ์žˆ๊ธฐ๋•Œ๋ฌธ์— ๊ตณ์ด ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ ์ฒ˜๋ฆฌํ•  ํ•„์š”๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค. ์˜คํžˆ๋ ค ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๊ฑฐ์น˜๊ฒŒ ๋˜๋ฉด wsgi(์›น์„œ๋ฒ„์™€ ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ฐ„์˜ ํ†ต์‹ ์„ ์œ„ํ•œ ์ธํ„ฐํŽ˜์ด์Šค)๋ฅผ ๊ฑฐ์ณ์•ผํ•˜๋ฏ€๋กœ ๋น„ํšจ์œจ์ ์ธ ๋กœ์ง์ด ํ•˜๋‚˜ ๋” ๋Š˜์–ด๋‚ฉ๋‹ˆ๋‹ค.

๋”ฐ๋ผ์„œ Django์—์„œ๋Š” static ํŒŒ์ผ์„ ์ง์ ‘ ์ฒ˜๋ฆฌํ•˜๋Š” ๊ธฐ๋Šฅ์„ ๋‹ด๊ณ ์žˆ์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋Œ€์‹  ํ”„๋กœ์ ํŠธ๋ฅผ ์‹ค์ œ๋กœ ๋ฐฐํฌํ•  ๋•Œ collectstatic์„ ํ†ตํ•ด ํ”„๋กœ์ ํŠธ ๋‚ด์— ํฉ์–ด์ ธ์žˆ๋Š” static ํŒŒ์ผ๋“ค(๊ฐ๊ฐ์˜ ์•ฑ์— ๋”ธ๋ฆฐ staticํด๋”)๋ฅผ ํ•œ๊ตฐ๋ฐ์— ๋ชจ์€ ๋’ค ์„œ๋ฒ„๋กœ ๋ณต์‚ฌํ•ด์ค๋‹ˆ๋‹ค.

์ด๋ ‡๊ฒŒ ๋ชจ์œผ๋Š” ๊ณผ์ •์„ ๊ฑฐ์น˜๋ฉด ์‹ค์ œ ๋ฐฐํฌ๋˜๋Š” ์›น์„œ๋ฒ„๋Š” ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ๋ณต์‚ฌํ•ด์ค€ static ํŒŒ์ผ๋“ค์„ ์ €์žฅํ•œ ๋’ค ํด๋ผ์ด์–ธํŠธ์˜ ์š”์ฒญ์— ์ง์ ‘ ์‘๋‹ตํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

๐ŸŒŸstatic ์„ค์ •ํ•ญ๋ชฉ

๐ŸŽฏSTATICFILES_DIRS

๊ฐœ๋ฐœ ๋‹จ๊ณ„(DEBUG = True) ์ฆ‰ ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋‚ด์— ์œ„์น˜ํ•œ static ํŒŒ์ผ์˜ ์œ„์น˜๋ฅผ ์ง€์ •ํ•˜๋Š” ํ•ญ๋ชฉ์ž…๋‹ˆ๋‹ค. ์—ฌ๋Ÿฌ๊ฐœ์˜ ๊ฒฝ๋กœ๋„ ์„ค์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๐ŸŽฏSTATIC_URL

STATIC_ROOT(์‹ค์ œ๊ฒฝ๋กœ)์— ์œ„์น˜ํ•œ ์ฐธ์กฐํ•˜๊ธฐ์œ„ํ•œ url์ž…๋‹ˆ๋‹ค.

๐ŸŽฏSTATIC_ROOT

์„œ๋ฒ„ ๋ฐฐํฌ ๋‹จ๊ณ„(DEBUG = False)์—์„œ static ํŒŒ์ผ์„ ๋ชจ์œผ๊ธฐ ์œ„ํ•œ ์ ˆ๋Œ€๊ฒฝ๋กœ๋ฅผ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. ์ด ๊ฒฝ๋กœ์— ์žˆ๋Š” ๋ชจ๋“  ํŒŒ์ผ์„ ์›น์„œ๋ฒ„๊ฐ€ ์ง์ ‘ ์ œ๊ณตํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. ์•ฑ ๋‚ด์— ์œ„์น˜ํ•œ static ํด๋”์™€ STATICFILES_DIRS์— ๋ช…์‹œ๋œ ๊ฒฝ๋กœ์— ์žˆ๋Š” ๋ชจ๋“  ํŒŒ์ผ์„ ๋ชจ์๋‹ˆ๋‹ค.


Written by@์ด์ฃผํ˜•
ๅนณๅธธๅฟƒ

GitHubFacebook