Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Berikut ialah beberapa tajuk berasaskan soalan yang sesuai dengan kandungan anda: Langsung dan Khusus: * Mengapa Django Melemparkan Ralat TemplateDoesNotExist, Walaupun Templat Saya Ada? * Pemuatan Templat Django:

Berikut ialah beberapa tajuk berasaskan soalan yang sesuai dengan kandungan anda: Langsung dan Khusus: * Mengapa Django Melemparkan Ralat TemplateDoesNotExist, Walaupun Templat Saya Ada? * Pemuatan Templat Django:

Barbara Streisand
Barbara Streisandasal
2024-10-29 03:16:02869semak imbas

Here are some question-based titles that fit your content:

Direct and Specific:

* Why Does Django Throw a TemplateDoesNotExist Error, Even Though My Templates Are Present?
* Django Template Loading: How to Fix 'TemplateDoesNotExist' Errors When Templa

Django TemplateDoesNotExist

Problem

Django gagal untuk mencari templat yang ditentukan dan membuang pengecualian jenis TemplateDoesNotExist. Lokasi yang Django jangkakan untuk mencari templat tidak wujud, walaupun templat terdapat pada cakera.

Templat Pemuatan Perintah Django

Django mengikut susunan tertentu semasa memuatkan templat:

  • django.template.loaders.filesystem - Memuatkan templat daripada sistem fail.
  • django.template.loaders.app_directories - Memuatkan templat daripada direktori templat aplikasi.

Pemeriksaan TEMPLATE_DIRS

Dalam kes ini, konfigurasi untuk TEMPLATE_DIRS mengarahkan Django untuk mencari templat dalam /usr/lib/python2.5/site-packages/projectname/templates. Walau bagaimanapun, templat disusun dalam /usr/lib/python2.5/site-packages/projectname/templates/appname/template_name.html. Django tidak dapat mencari templat kerana ia menjangka ia berada dalam akar direktori templat.

Penyelesaian 1

Untuk menyelesaikan isu, alihkan templat ke /usr/lib/python2.5 /site-packages/projectname/templates/template_name.html.

Penyelesaian 2

Sebagai alternatif, pertimbangkan untuk mengubah suai TEMPLATE_DIRS untuk mencari templat dalam direktori templat aplikasi:

<code class="python">TEMPLATE_DIRS = (
    os.path.join(SETTINGS_PATH, 'appname1/templates'),
    os.path.join(SETTINGS_PATH, 'appname2/templates'),
    os.path.join(SETTINGS_PATH, 'appname3/templates'),
)</code>

Kebenaran Pemilikan

Jika penyelesaian di atas tidak berfungsi, semak kebenaran pemilikan direktori templat. Dalam kes yang diberikan, melaksanakan chown -R www-data:www-data /usr/lib/python2.5/site-packages/projectname/* menyelesaikan isu tersebut, kerana pengguna pelayan web memerlukan kebenaran yang sesuai untuk mengakses templat.

Atas ialah kandungan terperinci Berikut ialah beberapa tajuk berasaskan soalan yang sesuai dengan kandungan anda: Langsung dan Khusus: * Mengapa Django Melemparkan Ralat TemplateDoesNotExist, Walaupun Templat Saya Ada? * Pemuatan Templat Django:. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn