首頁  >  文章  >  後端開發  >  以下是一些適合您的內容的基於問題的標題: 直接和具體: * 為什麼 Django 會拋出 TemplateDoesNotExist 錯誤,即使我的模板存在? * Django 模板載入:

以下是一些適合您的內容的基於問題的標題: 直接和具體: * 為什麼 Django 會拋出 TemplateDoesNotExist 錯誤,即使我的模板存在? * Django 模板載入:

Barbara Streisand
Barbara Streisand原創
2024-10-29 03:16:02864瀏覽

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

問題

Django 無法定位指定範本並拋出 TemplateDoesNotExist 類型的例外。即使模板存在於磁碟上,Django 期望找到模板的位置也不存在。

Django 的模板載入順序

Django 在載入範本時遵循特定的順序:

  • django.template.loaders.filesystem - 從檔案系統載入範本。
  • django.template.loaders.app_directories - 從應用程式的範本目錄載入範本。

檢查 TEMPLATE_DIRS

在這種情況下,TEMPLATE_DIRS 的配置指示 Django 在 /usr/lib/python2.5/site-packages/projectname/templates 中尋找模板。但是,模板組織在 /usr/lib/python2.5/site-packages/projectname/templates/appname/template_name.html 中。 Django 無法找到模板,因為它希望它們位於 templates 目錄的根目錄中。

解決方案1

要解決此問題,請將範本移至/usr/lib/python2.5 /site-packages/projectname/templates/template_name.html.

解決方案2

或者,考慮修改TEMPLATE_DIRS 以在應用程式的範本目錄中搜尋範本:

<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>

所有權權限

如果上述解決方案不起作用,請檢查範本目錄的所有權權限。在給定的情況下,執行chown -R www-data:www-data /usr/lib/python2.5/site-packages/projectname/* 解決了這個問題,因為Web 伺服器使用者需要適當的權限才能存取模板。

以上是以下是一些適合您的內容的基於問題的標題: 直接和具體: * 為什麼 Django 會拋出 TemplateDoesNotExist 錯誤,即使我的模板存在? * Django 模板載入:的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn