2012-10-03 3 views
2

저는 장고를 초보자 용으로 삼아 개인 기술 블로그를 만들려고합니다. 나는 webfaction에 접대하고있다. this video을 사용하여 블로그를 설정했습니다. 그러나 스타일 시트가 작동하지 않습니다. 나는 the step-by-step procedure을 따라 webfaction에서 언급 한 정적 파일을 만들었지 만 여전히 stlyesheet는 작동하지 않습니다.CSS 파일 용 django 설정

나는 정적 응용 프로그램을 만들었습니다 : staticapp 그리고 webfaction 문서에 언급 된대로 /static 으로 웹 사이트에 추가했습니다. settings.py에서

:

STATIC_ROOT = 'home/myaccount/webapps/staticapp' 
    STATIC_URL = 'http://myblogtest.myaccount.webfactional.com/static' 
    STATICFILES_DIRS = ('junk','static',) 


INSTALLED_APPS = (
    'django.contrib.auth', 
    'django.contrib.contenttypes', 
    'django.contrib.sessions', 
    'django.contrib.sites', 
    'django.contrib.messages', 
    'django.contrib.staticfiles', 
    'django.contrib.admin', 
    'django.contrib.admindocs', 
    'blog', 
    ) 

나는이처럼 내 HTML 페이지에서 참조하고 있습니다 :

<link rel="stylesheet" type="text/css" href="static/style/style.css" /> 

내가 어떤 단계를 실종? urls.py에 코드 스 니펫을 추가하라는 많은 답변을 볼 수 있지만 Webfaction의 문서에는 언급되어 있지 않습니다. 그래서 나는 그것을하지 않았다.

나는 많은 사람들이이 같은 문제에 직면 한 것을 볼 수 있었지만 대답은 내가 초보자로서 나를 돕지 못한다. 친절하게 설치하도록 도와주세요. :)

답변

3

STATIC_ROOT 필요는 prepending이 슬래시 /, 즉 /home...home...

STATICFILES_DIRSstatic 디렉토리를 추가하지 마십시오하지가 있습니다. 가장 가까운 무딘 물체를 가지고 당신이 그렇게하도록 조언했다는 것을 당신은 누구에게도 강요 할 수있는 허락을 받았습니다. static 디렉토리는 이 아니어야합니다. 개발 중에는이 존재해야하며 프로덕션에서는 python manage.py collectstatic을 통해서만 생성 또는 수정해야합니다.

이 디렉토리는 MEDIA_ROOT 또는 STATIC_ROOT하는 절차와 동일하지 않아야 즉, 각 응용 프로그램의 개별 static 디렉토리 또는 완전히 다른 프로젝트 수준의 디렉토리 중 하나에 저장 정적 자원 마십시오. 그런 다음 디렉토리를 STATICFILES_DIRS에 추가하십시오.

{% load static from staticfiles %} 
<img src="{% static "images/hi.jpg" %}" alt="Hi!" /> 

이 자동으로 당신을위한 URL의 STATIC_URL 부분을 추가합니다, 그래서 당신이 제공하는 path 매개 변수는 관련되어야합니다 :

장고에서 1.4 당신은 당신의 템플릿에 {% static %} 템플릿 태그를 사용한다 .

장고 1.3 인 경우 을 사용하면 이 TEMPLATE_CONTEXT_PROCESSORS 어딘가에 표시됩니다. 또한보기에는 RequestContext을 사용해야합니다. 즉, 클래스 기반보기 인 render을 사용하거나 context_instance=RequestContext(request)render_to_response으로 전달해야합니다.

당신이 장고 편의를 위해 개발에 정적 파일을 제공하려면

, 당신은 당신의 urls.py의 끝에 다음을 추가 할 수 있습니다

from django.contrib.staticfiles.urls import staticfiles_urlpatterns 
urlpatterns += staticfiles_urlpatterns() 

이 것 생산 환경 (DEBUG=False)에서하지 작동합니다. 프로덕션을 위해서는 python manage.py collectstatic을 실행 한 다음 프론트 엔드 웹 서버 (nginx, Apache 등)에 STATIC_URL 디렉토리를 제공해야합니다.

+1

예! 그것은 일했다! !! 고마워요 @ 크리스 :) – Robby

1

설정에 STATIC_URL을 정의했습니다. 당신은 당신의 HTML 템플릿으로 당신이 설정에서 TEMPLATE_CONTEXT_PROCESSORS에서 아무것도 제거하지 않은 것처럼 작동합니다

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

에서 사용한다.

자산 관리자를 사용하여 직접 작성하는 대신 템플릿의 모든 JS 및 CSS 링크를 생성 할 수도 있습니다. django-pipeline은 정말 좋으며 JS와 CSS 연결 및 압축 같은 것을 처리 할 수 ​​있습니다.

+0

{{STATIC_URL}}을 (를) 사용해 보았습니다. 도움이되지 않았다. 제가 따라하는 과정에 대한 다른 정보를 알고 싶습니까? – Robby