2010-07-06 2 views
0

내 CSS 파일을 사용하고 싶지만 tempalte는 파일이 어디에 있는지를 알지 못합니다. 자습서 에서처럼 구성했습니다 :django css 파일을 인식하지 못했습니다 - 잘못된 구성입니까? 내 응용 프로그램에서

urls.py (URL 설정에서 템플릿

<link href="/site_media/default.css" rel="stylesheet" type="text/css" /> 

(r'^site_media/(?P<path>.*)$', 'django.views.static.serve', 
     {'document_root': settings.STATIC_DOC_ROOT}), 

) 응용 프로그램에 속하지 않는 사이트의 루트에 파일 :

STATIC_DOC_ROOT = '/site_media' 

어디서 잘못 할 수 있습니까? 감사합니다

답변

3

체크 django-annoying, 그것은 편리한 데코레이터, 미들웨어 및 기능을 많이 갖춘 매우 유용한 앱입니다. 이런 미디웨어를 StaticServe에 추가하면 장고는 DEBUG = True 인 경우 정적으로 제공되며 urls.py에 명시 적으로 설정되지 않습니다.

MIDDLEWARE_CLASSES = (
    'annoying.middlewares.StaticServe', 
    'django.middleware.common.CommonMiddleware', 
    'django.contrib.sessions.middleware.SessionMiddleware',    
    'django.middleware.doc.XViewMiddleware',    
    'django.contrib.auth.middleware.AuthenticationMiddleware',      
) 

둘째, 확인하여 MEDIA_URL (귀하의 경우는 STATIC_DOC_ROOT,하지만 당신은 MEDIA_URL 사용한다) 및 MEDIA_ROOT 경로를. MEDIA_ROOT은 정적 디렉토리의 절대 경로를 가리켜 야합니다. 이것은 내가 setttings.py에서 그것을 할 방법은 다음과 같습니다

import os 


def rel(*x): 
    return os.path.join(os.path.abspath(os.path.dirname(__file__)), *x) 

# MEDIA_ROOT will point to media directory where settings.py is located 
MEDIA_ROOT = rel('media') 
MEDIA_URL = '/media/' 

당신은 당신의 templates 디렉토리에 경로를 설정 같은 기능을 사용할 수 있습니다.

+0

이 방법을 사용했습니다. 감사합니다. 짜증나는 미들웨어를 설치할 필요가 없었습니다. 이제는 괜찮습니다. D 다시 한번 감사드립니다! – dana

+0

반드시 필요하지는 않지만 장고 성가신 앱을 정말 좋아하고 유용하다고 생각할 수 있습니다. :) –

+0

문제가 생겼을 때 리뷰 해 드리겠습니다.) thanks! :) – dana

2

static.serve의 인수는 URL이 아닌 서버 파일 시스템의 파일의 위치 여야합니다. 따라서 귀하의 css 파일이 정말로 디스크의 /site_media 디렉토리에 있지 않는 한, STATIC_DOC_ROOT과 같은 다른 것을 원합니다.

+0

3 회 읽었지만 , 나는 당신이 의미하는 것을 정말로 이해하지 못합니다. STATIC_DOC_ROOT 경로를 내 디스크 또는 절대 경로로 변경해야합니까? ... – dana

+1

예, 정확히 그 뜻입니다. –

+0

나는 지금 그것을 시도하고 결과를 게시 :) 감사합니다 많이! :) – dana

관련 문제