2015-01-17 2 views
2

Google이 Stackoverflow에서 찾은 모든 TemplateDoesNotExist 질문을 살펴 보았습니다. 그러나, 나는이 버그를 해결할 수 없었다.Django TEMPLATEDOESNOTEXIST가 앱 디렉토리를 찾지 못합니까?

내 설치된 앱 :

INSTALLED_APPS = (

    'django.contrib.admin', 
    'django.contrib.auth', 
    'django.contrib.contenttypes', 
    'django.contrib.sessions', 
    'django.contrib.messages', 
    'django.contrib.staticfiles', 
    'django.contrib.humanize', 
    'remarket', 
    'polls', 
) 

템플릿 로더 : 요청/여론 조사 /에 올 때

TEMPLATE_LOADERS = ('django.template.loaders.filesystem.Loader', 
'django.template.loaders.app_directories.Loader') 

그러나, 장고는 관리 및 인증 애플리케이션에서 보인다. 설문 조사 응용 프로그램에서 index.html에 대한 응용 프로그램 아래의 서식 파일을 찾을 수 없습니다. 이것은 Django Poll App 예제의 내용입니다.

누구나 내가 누락 된 부분을 찾아 낼 수 있습니까?

또한 '어떻게 작동시키는 지'알고 있습니다. 템플릿을 앱 디렉토리에서 프로젝트 디렉토리로 옮기면됩니다. 그런 다음 TEMPLATE_DIR을 설정하여 찾을 수 있습니다. 그러나 그것은 앱의 재사용 가능성을 제거합니다. 그래서 재사용 가능한 앱 기능을 유지할 수 있도록 어떻게 해결할 수 있는지 설명해주십시오.

+0

정말 'TEMPLATE_DIR'설정을 지정 했습니까? 'TEMPLATE_DIRS'로 이름을 바꾸면 어떨까요? – alecxe

+0

핵심 템플릿 디렉토리 만 가르키고있는 'TEMPLATE_DIRS'입니까? 아니면 거기에 포함 된 앱용 템플릿 디렉토리가 있습니까? – souldeux

+0

디렉토리 구조에 대한 세부 사항을 게시하십시오 ... 당신은 app 디렉토리를'myapp/templates/myapp/template.html'와 같은 dir에 넣어야한다는 것을 알고 계십니까? – Anentropic

답변

0

템플릿 로더 app_directories.Loader은 템플릿을 찾기 위해 app 디렉토리를 살펴야합니다. 이 로더는 your_app/templates부터 시작합니다. 이제 특정 템플릿을 특정 앱과 연결하기 위해 네임 스페이스 개념을 사용하기 위해 앱과 동일한 이름의 하위 디렉토리를 생성하므로 경로는 your_app/templates/your_app처럼 보입니다.

앱의 모든 템플릿은 your_app 하위 디렉토리에 있습니다. "bug"는 template_name = 'index.html'이 두 번째 your_app 하위 디렉토리 아래에있을 것으로 예상되지만 장고는 거기서 찾지 않습니다. Template_names = your_app/index.html을

:

이 문제를 해결하는 방법은 그래서 항상 로더 your_app 하위 디렉토리의 템플릿 디렉토리에서 시작 것을 알고 템플릿 하위 디렉토리에서 시작 템플릿 이름을 이름을 지정하는 것입니다

이것은 나를 위해 일한 방법이며 같은 문제를 겪고있는 사람과 공유하는 방법입니다. 다른 방법이 있다면 공유하십시오.

관련 문제