Django-compressor: μ˜€ν”„λΌμΈ μ••μΆ• 였λ₯˜

에 λ§Œλ“  2013λ…„ 09μ›” 25일  Β·  6μ½”λ©˜νŠΈ  Β·  좜처: django-compressor/django-compressor

λ‚˜λŠ” 이것을 λ””λ²„κΉ…ν•˜λŠ” 데 ν•œ μ£Ό(2개의 λ‹€λ₯Έ μ£Ό)λ₯Ό λ³΄λƒˆκ³  μƒλ‹Ήνžˆ μ’Œμ ˆν–ˆμŠ΅λ‹ˆλ‹€. λ‚˜λŠ” 거의 λͺ¨λ“  기사/λΈ”λ‘œκ·Έ 포슀트/문제λ₯Ό μ½μ—ˆκ³  무엇을 해야할지 λͺ¨λ₯΄κ² λ‹€κ³  μƒκ°ν•©λ‹ˆλ‹€. μŠ€ν…Œμ΄μ§• μ„œλ²„μ™€ ν”„λ‘œλ•μ…˜ μ„œλ²„(각각 λ³„λ„μ˜ s3 버킷이 있음)κ°€ 있으며 이것은 μ„œλ²„(Herokuμ—μ„œ)와 버킷이 λ™μΌν•˜λ”λΌλ„ μŠ€ν…Œμ΄μ§•μ—μ„œλŠ” μž‘λ™ν•˜μ§€λ§Œ ν”„λ‘œλ•μ…˜μ—μ„œλŠ” μž‘λ™ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€.

μ••μΆ• νƒœκ·Έκ°€ ν•˜μœ„ ν…œν”Œλ¦Ώμ—λ§Œ ν‘œμ‹œλ˜λ„λ‘ λ§Œλ“€μ—ˆμŠ΅λ‹ˆλ‹€. μ••μΆ• νƒœκ·Έ(예: if/else) λ‚΄μ—μ„œ λͺ¨λ“  ν…œν”Œλ¦Ώ νƒœκ·Έλ₯Ό μ œκ±°ν–ˆμŠ΅λ‹ˆλ‹€. 즉, 더 λ§Žμ€ μ••μΆ• νƒœκ·Έκ°€ μžˆμœΌλ―€λ‘œ if/else 문이 μ••μΆ• νƒœκ·Έ 외뢀에 μžˆμ„ 수 μžˆμŠ΅λ‹ˆλ‹€.

λˆ„κ΅¬λ‚˜ λ³Ό 수 μžˆλŠ” ν”„λ‘œλ•μ…˜ ν™˜κ²½μ—μ„œ μž‘λ™ν•˜λŠ” μ˜€ν”„λΌμΈ 압좕이 μ„€μ •λ˜μ–΄ μžˆμŠ΅λ‹ˆκΉŒ? compress offline=Falseλ₯Ό μ‚¬μš©ν•˜λ©΄ μ„œλ²„μ— μƒλ‹Ήν•œ μΆ”κ°€ λΆ€ν•˜κ°€ λ°œμƒν•˜κ³  μ’…μ’… μΆ”κ°€ 300-500ms 지연이 λ°œμƒν•©λ‹ˆλ‹€. μ΄λŠ” λΆ„λͺ…νžˆ κ°€μΉ˜κ°€ μ—†κ³  이 νŒ¨ν‚€μ§€μ˜ 전체 λͺ©μ μ„ λ¬΄νš¨ν™”ν•©λ‹ˆλ‹€.

μ‹€μ œλ‘œ 도움을 받을 μˆ˜λŠ” μžˆμ§€λ§Œ 기본적으둜 이 μ‹œμ μ—μ„œ 무엇을 ν•΄μ•Ό ν•˜λŠ”μ§€ μ „ν˜€ λͺ¨λ¦…λ‹ˆλ‹€. μ™œλƒν•˜λ©΄ μ—¬κΈ° 문제 λͺ©λ‘, λ‹€λ₯Έ λΈ”λ‘œκ·Έ κ²Œμ‹œλ¬Όμ— μžˆλŠ” 수백 λͺ…μ˜ μ‚¬λžŒλ“€κ³Ό λ™μΌν•œ λ¬Έμ œμ— λŒ€ν•΄ 읽을 수 있고 반볡 κ°€λŠ₯ν•œ μ†”λ£¨μ…˜μ΄ μ—†κΈ° λ•Œλ¬Έμž…λ‹ˆλ‹€. 이것은 μ„±λŠ₯에 맀우 μ€‘μš”ν•˜κ³  μ•„λ§ˆλ„ λͺ¨λ“  Django 배포에 ν•„μš”ν•œ 것에 λŒ€ν•œ 큰 λ¬Έμ œμž…λ‹ˆλ‹€.

deployment

κ°€μž₯ μœ μš©ν•œ λŒ“κΈ€

μ§€λ‚œ λ©°μΉ  λ™μ•ˆ λ‚˜λŠ” 같은 문제λ₯Ό ν•΄κ²°ν•˜λŠλΌ λ°”λΉ΄κ³ , λˆ„κ΅°κ°€μ—κ²Œ 도움이 λ˜μ—ˆμœΌλ©΄ ν•΄μ„œ μˆ˜μ • 사항을 μ•Œλ € λ“œλ¦¬κ² μŠ΅λ‹ˆλ‹€.

문제λ₯Ό μž¬ν˜„ν•  수 μžˆλŠ” ν…œν”Œλ¦Ώ 쀑 ν•˜λ‚˜μ—μ„œ μ»¨ν…μŠ€νŠΈλ₯Ό μ‚¬μš©ν•˜κ³  μžˆμ—ˆμŠ΅λ‹ˆλ‹€. μ˜€ν”„λΌμΈ μ••μΆ• μ€‘μ—λŠ” μ»¨ν…μŠ€νŠΈμ— μ•‘μ„ΈμŠ€ν•  수 μ—†μœΌλ―€λ‘œ μ˜€ν”„λΌμΈ μ••μΆ• 쀑에 μƒμ„±λœ 킀와 응닡 주기의 ν‚€κ°€ λΆ„λͺ…νžˆ λ‹€λ₯Ό κ²ƒμž…λ‹ˆλ‹€.

μ»¨ν…μŠ€νŠΈμ— μ˜μ‘΄ν•˜λŠ” JavaScript 뢀뢄을 compress νƒœκ·Έ 외뢀에 μžˆλŠ” λ‹€λ₯Έ λΈ”λ‘μœΌλ‘œ 뢄리해 λ³΄μ‹­μ‹œμ˜€.

이 정보가 λˆ„κ΅°κ°€μ—κ²Œ 도움이 되기λ₯Ό λ°”λžλ‹ˆλ‹€.

λͺ¨λ“  6 λŒ“κΈ€

여기도 λ§ˆμ°¬κ°€μ§€μž…λ‹ˆλ‹€. django_compressor의 COMPRESS_OFFLINE이 ν•΄κ²°ν•˜λŠ” 것보닀 더 λ§Žμ€ 문제λ₯Ό λ§Œλ“œλŠ” 것 κ°™μŠ΅λ‹ˆλ‹€. λ‹€μŒκ³Ό 같은 λ©”μ‹œμ§€λ₯Ό λ°›κΈ° λ•Œλ¬Έμ— μž‘λ™ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€.

OfflineGenerationError: You have offline compression enabled but key "%s" 
is missing from offline manifest. You may need to run "python manage.py compress".

여기도 λ§ˆμ°¬κ°€μ§€ :/

μ˜€ν”„λΌμΈ 압좕이 μž‘λ™ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€. κ³„μ†ν•΄μ„œ OfflineGenerationErrorκ°€ λ°œμƒν•©λ‹ˆλ‹€.

κ·Έλž˜μ„œ λͺ¨λ“  μ›Ή μ„œλ²„μ— 배포할 λ•Œλ§ˆλ‹€ λ‹€μŒμ„ μ‹€ν–‰ν–ˆλŠ”μ§€ ν™•μΈν–ˆμŠ΅λ‹ˆλ‹€.

파이썬 관리.py μ••μΆ• --force
파이썬 관리.py μˆ˜μ§‘ 정적

manifest.json νŒŒμΌμ„ μƒˆλ‘œ 고쳐야 ν•©λ‹ˆλ‹€. λ˜ν•œ 각 ν‘Έμ‹œλ§ˆλ‹€ λ§€λ‹ˆνŽ˜μŠ€νŠΈ 파일의 이름이 λ‹€λ₯Έμ§€ ν™•μΈν•©λ‹ˆλ‹€. 버전 번호λ₯Ό μΆ”κ°€ν•˜λŠ” 것과 κ°™μŠ΅λ‹ˆλ‹€. λ§€λ‹ˆνŽ˜μŠ€νŠΈ_%s.json
μ΅œμ‹  git 컀밋 ν•΄μ‹œ IDλ₯Ό ν”ŒλŸ¬κ·ΈμΈ %s에 μ‚¬μš©ν•©λ‹ˆλ‹€. λ”°λΌμ„œ λ°°ν¬ν•˜λŠ” λ™μ•ˆ git pull, compress, collectstatic을 μˆ˜ν–‰ν•˜μ—¬ μƒˆλ‘œμš΄ manifest.json 파일둜 μƒˆλ‘œμš΄ μΆ•μ†Œ/집계 CSS/jsλ₯Ό μƒμ„±ν•©λ‹ˆλ‹€.
그런 λ‹€μŒ μ•„νŒŒμΉ˜λ₯Ό λ‹€μ‹œ μ‹œμž‘ν•©λ‹ˆλ‹€. λ”°λΌμ„œ λͺ¨λ“  것이 μ›ν™œν•΄μ•Ό ν•©λ‹ˆλ‹€.

λ˜ν•œ λ‚˜λŠ” 였래된 static/* λ―Έλ””μ–΄λ₯Ό μ‚­μ œν•˜κΈ° μœ„ν•΄ collectstatic이 --clearλ₯Ό ν˜ΈμΆœν•˜μ§€ μ•ŠλŠ”μ§€ ν™•μΈν–ˆμŠ΅λ‹ˆλ‹€.

말이 λ©λ‹ˆκΉŒ?

μ’‹μ•„, λ‚˜λŠ” μ •ν™•νžˆ 같은 λ¬Έμ œκ°€ μžˆμŠ΅λ‹ˆλ‹€.
λˆ„κ΅¬λ“ μ§€ μ•ˆμ •μ μΈ λ°©μ‹μœΌλ‘œ S3μ—μ„œ 이것을 μ˜€ν”„λΌμΈμœΌλ‘œ μ‹€ν–‰ν•˜κ³  μžˆμŠ΅λ‹ˆκΉŒ?

μ‹œλ„ν•˜μ‹­μ‹œμ˜€:
http://stackoverflow.com/a/31545361/1359475

μ§€λ‚œ λ©°μΉ  λ™μ•ˆ λ‚˜λŠ” 같은 문제λ₯Ό ν•΄κ²°ν•˜λŠλΌ λ°”λΉ΄κ³ , λˆ„κ΅°κ°€μ—κ²Œ 도움이 λ˜μ—ˆμœΌλ©΄ ν•΄μ„œ μˆ˜μ • 사항을 μ•Œλ € λ“œλ¦¬κ² μŠ΅λ‹ˆλ‹€.

문제λ₯Ό μž¬ν˜„ν•  수 μžˆλŠ” ν…œν”Œλ¦Ώ 쀑 ν•˜λ‚˜μ—μ„œ μ»¨ν…μŠ€νŠΈλ₯Ό μ‚¬μš©ν•˜κ³  μžˆμ—ˆμŠ΅λ‹ˆλ‹€. μ˜€ν”„λΌμΈ μ••μΆ• μ€‘μ—λŠ” μ»¨ν…μŠ€νŠΈμ— μ•‘μ„ΈμŠ€ν•  수 μ—†μœΌλ―€λ‘œ μ˜€ν”„λΌμΈ μ••μΆ• 쀑에 μƒμ„±λœ 킀와 응닡 주기의 ν‚€κ°€ λΆ„λͺ…νžˆ λ‹€λ₯Ό κ²ƒμž…λ‹ˆλ‹€.

μ»¨ν…μŠ€νŠΈμ— μ˜μ‘΄ν•˜λŠ” JavaScript 뢀뢄을 compress νƒœκ·Έ 외뢀에 μžˆλŠ” λ‹€λ₯Έ λΈ”λ‘μœΌλ‘œ 뢄리해 λ³΄μ‹­μ‹œμ˜€.

이 정보가 λˆ„κ΅°κ°€μ—κ²Œ 도움이 되기λ₯Ό λ°”λžλ‹ˆλ‹€.

이 νŽ˜μ΄μ§€κ°€ 도움이 λ˜μ—ˆλ‚˜μš”?
0 / 5 - 0 λ“±κΈ‰