2017-05-21 47 views
2

它的工作在本地主機,但在生產中其顯示的錯誤:在模板/(指定網址)不存在

TemplateDoesNotExist at /tcapp/tcpage 

應用程序/ urls.py

from django.conf.urls import url 
from .import views 

urlpatterns = [ 
    url(r'^tcapp/tcpage', views.tcpage, name='tcpage'), 
    url(r'^tcapp/tcappretrive', views.tcappretrive, name='tcappretrive'), 
    url(r'^tcapp/home',views.tcpage,name='tcpage'), 
    url(r'^tcapp/work',views.work,name='work'), 
    url(r'^tcapp/s&c',views.support,name='support'), 
] 

模板:

  • home.html的
  • work.html
  • s & c.html

什麼可能導致此錯誤消息?

+1

你能分享'views.py'嗎? –

+0

顯示查看功能 – Exprator

回答

0

這裏可能是公司招聘

  1. 的原因是否設置包括正確的模板目錄? 您可能需要在settings.py檢查template_dir模板設置 -

    TEMPLATES = [ 
           { 
            'BACKEND': 'django.template.backends.django.DjangoTemplates', 
            'DIRS': [ 
             '/home/html/example.com', 
             '/home/html/default', 
            ], 
           }, 
           { 
           'BACKEND': 'django.template.backends.jinja2.Jinja2', 
           'DIRS': [ 
             '/home/html/jinja2', 
             ], 
           }, 
        ] 
    

    更多的檢查this

  2. 此外,您可能需要使用os.path中的功能添加模板目錄。

讓我知道,如果這能解決您的問題。

+0

謝謝anup.my問題解決 –

+0

很高興知道,如果答案有幫助,那麼請標記爲已解決 – tom

0

模板在settings.py

PROJECT_PATH = os.path.realpath(os.path.dirname(__file__)) 

TEMPLATES = [ 
{ 
    'BACKEND': 'django.template.backends.django.DjangoTemplates', 
    'DIRS': [ 
     '/var/www/rsa/html', #1) this sets a static path 
     os.path.join(PROJECT_PATH, 'templates').replace('\\','/'), #2) this sets a dynamic path 
    ], 
    'APP_DIRS': True, 
    'OPTIONS': { 
     'context_processors': [ 
      'django.template.context_processors.debug', 
      'django.template.context_processors.request', 
      'django.contrib.auth.context_processors.auth', 
      'django.contrib.messages.context_processors.messages', 
     ], 
    }, 
}, 
] 

第1)路徑

PROJECT_PATH = os.path.realpath(os.path.dirname(__file__)) 

只是說所有模板都可以在這個絕對路徑設置。不是真的推薦。我更喜歡第二個選項,根據應用程序設置模板。

os.path.join(PROJECT_PATH, 'templates').replace('\\','/'), 

只是意味着你做任何的應用程序使用

./manage startapp app_name 

該應用程序文件夾內,你可以創建一個名爲「模板」的文件夾,並把任何你想要的模板在那裏。

擴展靜態文件夾中的模板,&在動態文件夾中有應用程序特定的模板。

在應用程序稱爲國家

你可以有一個模板

/countries/templates/display.html

裏面,你可以有

{% extends 'template/app.html' %} << this file is located in the static folder 

{% block 'content' %} 
    content goes here 
{% endblock %} 

希望有所幫助。

p.s.搜索模板的順序是先列出靜態,然後再查看動態位置。 如果在模板中找到app.html,那麼Django將停在那裏,不會再看。