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.