2013-02-14 6 views
1

은 현재 장고에서 설정 한 폴더 구조를 가지고 장고에 상대 경로에서로드되지 :스타일 시트

가 {APPNAME} \ 템플릿 CSS를 \

\ 자산을 \

\

{APPNAME} \ 템플릿

하지만 내 템플릿에 <link rel="stylesheet" href="assets/css/bootstrap.css" />과 같은 내용을 넣으려고하면 {appname}\templates\에로드됩니다. 어떤 이유로 든로드되지 않습니다. 트위터에서 직접로드 할 수 있지만 가능하면 상대 경로를 유지하는 것이 좋습니다.

왜이 기능이 작동하지 않을 수 있습니까? 그것이 어떤 실마리가 있다면 PyCharm의 하위 폴더가 밝은 회색으로 나타나며 그 이유가 확실하지 않습니다.


편집 : 좋아 그래서 정적 파일을 설정하는 방법에 here을 읽고, 그 아래에 css 폴더, 내 주요 프로젝트 폴더 아래에 static 디렉토리를 설정했습니다.

나는 업데이트 settings.py가 포함 : 다음

# Absolute path to the directory static files should be collected to. 
# Don't put anything in this directory yourself; store your static files 
# in apps' "static/" subdirectories and in STATICFILES_DIRS. 
# Example: "/home/media/media.lawrence.com/static/" 
STATIC_ROOT = '' 

# URL prefix for static files. 
# Example: "http://media.lawrence.com/static/" 
STATIC_URL = '/static/' 

# Additional locations of static files 
import os.path 

STATICFILES_DIRS = (
    os.path.dirname(__file__).replace('\\','/'), 
    # 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. 
) 

와 나의 HTML 파일에

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

를 추가하려고 시도하지만,로드 아니에요 - 내가 잘못 여기서 뭐하는거야 ?

답변

0

템플릿 디렉토리에 미디어 파일을 넣지 마십시오. Django directory structure?

페이지를 참조 응용 프로그램 때문에 설정 파일을 찾을 수 당 (이 경우 정적에) 미디어 디렉토리를 사용하여도 Confusion in Django admin, static and media files 당신은 애플 리케이션 당신의 루트에 정적이라는 폴더에 CSS를 유지하려는

+0

괜찮 았는데, 나는 그 링크마다 미디어 디렉토리를 설정했다. 어떻게 장고에이'.css' 파일을 가져야합니까? – fox

+0

거기에 들어가야 할 정적 디렉토리도 추가했습니다. – fox

+0

(업데이트 된 원래 게시물) – fox

1

. 그런 다음 django.contrib.staticfiles incluced가 INSTALLED_APPS에 포함되어 있는지 확인하십시오 (settings.py 내에서). 이제 python manage.py runserver을 실행하면 localhost : 8000/static /에서 정적 파일을 사용할 수 있습니다 (STATIC_URL 설정에 의해 정의 됨 - 기본값은 static/).

보기에서 RequestContext 개체를 사용하고 있는지 확인해야합니다. (대신 render_to_response의 새로운 render() 바로 가기를 사용하는 경우이 당신을 위해 처리됩니다)

당신이 '

def your_view(request): 
    #... 
    return render_to_response('page.html', context_data, context_instance=RequestContext(request)) 

-이 settings.py에서 (예 : STATIC_URL 등) 변수는 템플릿에서 사용할 수있는 보장 프로덕션 환경에서 파일을 다시 제공 한 다음 python manage.py collectstatic 명령을 사용하여 모든 정적 파일 (앱 루트에있는 static/ 폴더에있는 내용과 STATICFILES_DIR에있는 내용 모두)을 STATIC_ROOT에 정의 된 폴더로 옮깁니다. 그런 다음 웹 서버에서 STATIC_URL에있는 파일을 제공하게하십시오. (장고는이 파일을 처리하지 않으며 django 문서는 장고 앱을 제공하는 동일한 웹 서버를 사용하지 않아도됩니다.

정적 파일을 원하는 위치에 넣고 장고를 관리 할 수 ​​있습니다. 단순히 STATICFILES_DIR 튜플에 디렉토리의 위치를 ​​포함 시키십시오.

정적 파일 제공에 대한 docs을 확인하십시오. (나는 당신이 장고 1.4를 사용하고 있다고 가정했다.)

+0

위의 [Django 디렉토리 구조] (http://stackoverflow.com/questions/11216829/django-directory-structure/11222631) 링크 당 하나의 앱인 중앙 집중식 정적 디렉토리를 사용하려고했습니다. -agnostic - 그 컨텍스트에서'STATIC_URL'이 작동하지 않습니까? – fox

+0

STATIC_URL은 파일을 제공하는 곳입니다. 사용자가 직접 넣은 곳이 아닙니다. 이들을 static (또는 STATICFILES_DIRS에 정의 된 디렉토리 중 하나) 디렉토리에 넣은 다음, 프로덕션 환경에서만 collectstatic 명령을 사용하여 모두 한 곳 (STATIC_ROOT)으로 이동하십시오. –

+0

템플릿 페이지에서 어떻게 링크합니까? [djangoproject 페이지] (https://docs.djangoproject.com/en/dev/howto/static-files/)에 따르면, 나는 'Hi!'과 같은 것을해야만합니다. 그러나 이것을 시도 할 때 작동하지 않습니다. . – fox