2011-08-15 4 views
4

django에서 모든 url은 urls.py 파일에서 파싱됩니다. 따라서 디렉토리 구조는 없습니다.django 템플릿에 외부 CSS, 이미지 등을 포함시키는 방법은 무엇입니까?

그렇다면 템플릿에 CSS 파일을 포함해야한다면 어떻게해야합니까?

url.py 파일에 추가하지 않는 방법이 있습니까?

아니요, 그렇다면 모든 리소스에 대해 urls.py에 새 항목을 만드시겠습니까?

+5

는 정적 파일을 제공에 대한 문서를 읽고 귀찮게나요 ? –

+1

분명히, 아니 .. 그것은 나온 것이 틀림 없습니다. 설명서를 아직 완전히 읽지 않았습니다. –

+1

문서에 대한 간단한 링크만으로도 가능할 것입니다.하지만 항상 투표를해야합니다. :( –

답변

9

Django HOWTO on static files을 참조하십시오.

기본적으로, 구성 파일, 당신은 정적 파일을 저장하는 데 특별한 디렉토리를 지정하는 문서의 예는 다음과 같습니다.

STATIC_ROOT = "/home/jacob/projects/mysite.com/sitestatic" 

당신은 거기에 등 CSS 파일, 이미지를 넣어, 그리고 서버는 해당 디렉토리의 고정 URL 패턴과 일치하는 URL을 제공한다는 것을 알게됩니다.

+0

Nope :'# 디렉토리에 절대 경로를 정적 파일로 수집해야합니다. # 여기에 아무것도 넣지 마십시오. 디렉토리에있는 정적 파일 #을 앱의 "static /"하위 디렉토리와 STATICFILES_DIRS에 저장하십시오. # 예 : "/var/www/example.com/static/" STATIC_ROOT' 기본적으로 정적 파일은 'python manage.py collectstatic'와 같은 명령을 실행할 때 가서, 당신은 아무것도 넣지 않습니다. – michaelsnowden

+0

@doctordoder 2 년 반 전에이 질문에 답한 이후로 상황이 바뀌 었습니다. 현대 장고에 대한이 답변을 업데이트하십시오. – agf

+0

어떻게 알았습니까? 현재, 나는이 일을하는 데 어려움을 겪고 있습니다. 나 자신 (나는 가이드를 통해 일하고 있고 오래된 SO 스레드를보고있다). 나는 그것이 불행하게도 작동하지 않는다는 것을 정말로 알고 있습니다. 나랑 같은 배에 타인에게 미안해. – michaelsnowden

2

내 루트 urls.py 파일에 로컬로 개발할 때 정적 파일을 제공하기 위해이 패턴을 사용합니다. 또한 DEBUG에서 분리 할 수 ​​있도록 SERVE_STATIC_MEDIA라는 설정을 추가합니다.

if settings.SERVE_STATIC_MEDIA: 
    urlpatterns += patterns('', 
     (r'^static/(?P<path>.*)$', 'django.views.static.serve', \ 
      {'document_root' : settings.MEDIA_ROOT}), 
    ) 

다음 템플릿에서, 당신은 같은, JS, 이미지를 CSS에 액세스 할 수 없습니다 :

<link type="text/css" href="{{ MEDIA_URL }}css/foo.css" media="screen,projection" /> 
1

당신은 더 이상 (djangor> 1.10) STATIC_ROOT를 지정해야합니다. 간단히 확인

django.contrib.staticfiles

을하는 INSTALLED_APPS

STATIC_URL = '/ 정적 /'

에 포함되어 귀하의 settings.py

"static"이라는 디렉토리를 앱 디렉토리에 만들고 생성 된 정적 디렉토리 내부에 앱이라는 다른 하위 디렉토리를 만들고 거기에 정적 파일을 포함시킵니다 (또한 js, img, css 하위 디렉토리를 원하는 경우 사용자 환경 설정)

그런 다음 템플릿 파일에 올바른 경로를 포함하십시오.

SRC = "/static/my_app/example.js"

또는

SRC = "/ 정적 /을 my_app/JS/예 : 예를 들면.

{% load static %} 
<script src="{% static "my_app/js/example.js" %}"></script> 

모든 당신이 필요합니다 : "JS

(더 나은) 또는

을 (당신의 자바 스크립트 파일 디렉토리에서 호출 JS있는 가정), 정적 템플릿 태그를 사용하여 경로를 정의 알고

https://docs.djangoproject.com/en/1.10/howto/static-files/

관련 문제