Django에서 CSS를 어떻게 사용하나요?


110

Django를 사용하여 내 애플리케이션을 만들고 있는데 Django가 내 CSS 파일을 사용하도록 만드는 방법이 궁금합니다. Django가 CSS 파일을 볼 수 있도록하려면 어떤 설정을해야합니까?

NB : 로컬 컴퓨터에서

답변:


48

개발 서버를 사용하는 경우 django 프로젝트의 정적 파일 관리 방법 가이드에 따라 URL을 설정 한 다음 템플릿의 미디어 파일 (예 : /site_media/images/foo.gif.


25
Django 문서에 대한 간단한 메모-사용중인 Django 버전에 대한 문서를 선택했는지 확인하세요. 정적 파일과 관련하여 버전간에 상황이 많이 변경된 것으로 보입니다.
Sam Starling

3
@Sam은 좋은 지적이 있습니다. 나는 내 인생에 대한 정적 파일을 알아낼 수 없었다. 그런 다음 설치된 django 버전을 변경하고 짜잔. 분명히 내가 잘못된 버전에 대한 문서를 찾고 있었기 때문에 말 그대로 내가해야 할 모든 일이었습니다.
Josh Brown

36

더 일반적으로 말하자면 Django에서 정적 파일을 제공하는 방법을 묻습니다. Apache에서 실행중인 경우 http://docs.djangoproject.com/en/dev/howto/deployment/modpython/ 을 읽어야합니다.

개발 서버 (예 : 랩톱)를 실행하는 경우 http://docs.djangoproject.com/en/dev/howto/static-files/를 읽으십시오.

Django 개발 서버에 관한 크고 굵은 면책 조항 에 유의하십시오 .

  • 이 서버를 사용하는 것은 비효율적이고 안전하지 않습니다.
  • 프로덕션 설정에서는 사용하지 마십시오.
  • 개발 용으로 만 사용하십시오.

"생산 환경에서는 사용하지 마십시오." 이것에 대해 확장 하시겠습니까?
Chris

@Chris : 당신 말이 맞아요, 진술은 약간 모호했습니다. Django 개발 서버를 언급했습니다. 프로덕션 사이트에서 몇 번 실행했지만 끔찍한 문제를 디버깅하는 동안 짧은 시간 동안 만 실행되었습니다.
Peter Rowell

설명해 주셔서 감사합니다. 아파치에서 실행되는 django 배포를 살펴보고 내가 뭘 잘못했는지 궁금했습니다. :)
Chris

1
좋은. 같은 말을 다른 방식으로 말하는 3 가지 항목이 좋아요. 경고 해주셔서 감사합니다.
KobeJohn

13
나는 답변이 게시 된 지 4.5 년이 지난 후 함께 와서 반대 투표를하는 사람들을 절대적으로 사랑합니다. 나는 그들이 장고 11/08에 무엇인지 알고 있었는지 궁금합니다 . 그것은 나에게 얻을 담당자 포인트 아니다, 그것은 존재의 단지 힌트와 함께 무지와 오만의 표시 조합의 waaay 파티에 늦게. 1987 년에 comp.lang.c에 대한 내 게시물을 어떻게 평가할지 궁금합니다. 묻지 않는 것이 좋습니다.
Peter Rowell 2013

13

이로 인해 잠시 동안 문제가 발생했습니다 (404 찾을 수 없음 오류). 나를 위해 빠진 부분 STATICFILES_DIRS은 settings.py 에서 튜플 을 편집하여 이것을 제공하는 것입니다.

STATICFILES_DIRS = (
    # Put strings here, like "/home/html/static" or "C:/www/django/static".
    # Always use forward slashes, even on Windows.
    # Don't forget to use absolute paths, not relative paths.
    os.path.join(os.path.dirname(__file__),'media').replace('\\','/'),
)

그런 다음 내 django 프로젝트의 최상위 수준에있는 'media'라는 폴더에서 내 CSS 파일을 선택했습니다.

나는 또한 :

MEDIA_ROOT = ''
MEDIA_URL = ''
STATIC_ROOT = ''
STATIC_URL = '/media/'

( /위 의 선행이 있는지 확인하십시오 .STATIC_URL )

물론 위에서 말했듯이 html 파일에서 CSS 파일이 제대로 포함되어 있어야합니다. 나는 :

<link href="{{ STATIC_URL }}css/ea_base.css" rel="stylesheet" type="text/css" media="screen" />

마지막으로 명확하고 간단하며 우아한 솔루션입니다. django 1.5에서 잘 작동합니다.
pbarill

# Windows에서도 항상 슬래시를 사용합니다. .replace('\\','/')불필요합니다.
mak

12

Django가 CSS 파일을 볼 수 있도록하려면 어떤 설정을해야합니까?

없음.

템플릿에 CSS 파일이 포함되어 있는지 확인하고 (표준 HTML과 마찬가지로) CSS 파일을 미디어 서버에 넣습니다.

명확히하기 위해 : Django를 사용하면 다른 서버 인스턴스에서 모든 미디어 (동적 HTML이 아닌 모든 것)를 제공하는 것이 좋습니다. 이를 구현하는 방법은 전적으로 귀하에게 달려 있지만 대부분의 사람들은 하위 도메인을 만듭니다.


2
안녕, 올리. 이 게시물이 3 년 가까이 된 것을 알고 있지만 여전히 CSS를 django 템플릿에 연결하는 가장 좋은 방법입니까? 이것은 CSS를 static.example.com과 같은 abs URL에 연결하고 모든 정적 파일을 해당 URL에 저장하는 가장 쉬운 방법 인 것 같습니다.
cp3


0

django에서 CSS를 사용하는 가장 쉬운 방법은 템플릿에 정적 파일로 추가하는 것입니다.

그러나 그것은 ajax와 약간 비슷하며 표준 방식으로 포함하는 방법을 알려주는 것을 찾지 못했습니다.

CSS를 압축기 당신은 그것의 크기를 최적화하려면 장고에 대한 모듈.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.