2012-04-12 2 views
1

나는 왜 장고에서 base.css을 오버라이드 할 수 없는지 알아 내려고하고있다. 장고의 CSS를 오버라이드 할 정적 파일 디렉토리 추가하기

STATIC_URL = "/site_media/static/" 

그리고 site_base.html에 : settings.py에서

나는이

<link rel="stylesheet" href="{{ STATIC_URL }}pinax/css/base.css" /> 

그리고 /site_media/static/pinax/css/base.css에있는 파일을 사용자 정의. 하지만 여기에서 파일을 읽는 대신 내 python/site-packages/pinax 디렉토리에서 파일을 읽는 중입니다. 그리고 동일한 site_base.html 파일에서 나는 이미지를 덮어 쓸 수는 있지만 CSS 파일은 덮어 쓸 수없는 이상한 것처럼 보이는 /site_media_static/pinax/images/ 폴더에있는 이미지를 덮어 쓸 수 있습니다.

내가 뭘 잘못하고 있는지 아는 사람이 있습니까?

답변

1

STATIC_URL은 정적 파일이 저장되는 URL이 아니며 저장되는 디렉토리가 아닙니다.

정적 파일을 포함하는 디렉토리를 STATICFILES_DIRS에 추가하거나 정적 파일을 앱의 static 하위 디렉토리에 넣어야합니다.

Django staticfiles app에 대한 문서를 참조하십시오.

+1

'collectstatic'을 사용하고 있는데 왜 장고 관리자를 위해 내 over-raidden base.css를 수집하지 않는지 궁금합니다. [staticfiles app docs] (https://docs.djangoproject.com/ko/1.8/ref/contrib/staticfiles/#collectstatic) 상태 : "지정된 위치 중 하나에서 처음 발견 된 파일이 사용됩니다". 그래서'INSTALLED_APPS' 설정에서'mysite '를 첫 번째 위치로 옮겼습니다. 이것은 이제'python/site-packages/django/contrib/admin/css/base.css' 대신'mysite/static/admin/css/base.css'를 복사합니다. – jenniwren

0

STATIC_ROOT (STATIC_URL에 의해 참조 됨)은 수동으로 수정하면 안됩니다. 응용 프로그램 정적 디렉토리 및 STATICFILES_DIRScollectstatic 명령으로 채워집니다. Django의 dev 서버에는 소스에서 직접 정적 파일에 액세스 할 수있는 도우미가있어 JS 및 CSS를 쉽게 디버깅 할 수 있습니다.

귀하의 경우에 업데이트 된 파일을 어딘가에 넣어보십시오. STATICFILES_DIRS. 또한 STATICFILES_FINDERS을 살펴보면 정적 파일 찾기 프로그램의 순서를 변경하여 어느 것이 우선 순위가 될지를 결정할 수 있습니다.

관련 문제