2017-06-14 92 views
0

好吧,所以我試着讓一個文件夾具有靜態模板元素可以通過兩個css文件和一個html文件訪問所有應用程序。Django模板 - 指定通用模板文件夾返回「[Errno 22]無效參數」

在settings.py我去了TEMPLATES並增加了:'DIRS': os.path.join(BASE_DIR, 'static_files'),,如看到here(我從中編輯了保密信息)。

我的模板片段topnav.html看起來是這樣的:

<!DOCTYPE html> 

<html> 
    <meta charset="UTF-8"> 
    <meta name="viewport" content="width=device-width, initial-scale=1.0"> 

    <head> 
     <link rel="stylesheet" type="text/css" href="main.css"> 
     <link rel="stylesheet" type="text/css" href="w3.css"> 
     <title>EvoLang</title> 
    </head> 

<!-- Content will go here --> 
<body> 
    <script src="myScript.js"></script> 
    <!-- Navigation --> 
    <nav class="topnav"> 
    <ul class="topnav"> 
     <li><a href="#">Entrywords 
     <li><a href="#">Sentences 
    </ul> 
    </nav> 
    <!--/Navigation --> 
</body> 

然後,以前在我的應用程序biblio工作index.html看起來是這樣的:

{% extends "topnav.html" %} {# this enables using the top navigation bar #} 
<p>Lorem ipsum</p> 

我能得到什麼,而訪問該頁面如下錯誤:[Errno 22] Invalid argument: 'E:\\MyProject\\myproject\\:\\biblio\\index.html' 我真的不知道這是什麼\\:\\在這裏。

我在Python 3.6中使用Django 1.11.2。

+0

請顯示整個'TEMPLATES'設置和競爭設置。如果您在設置文件中打印/記錄'TEMPLATES',你會得到什麼? – Alasdair

+1

另外'static_files'是模板目錄的奇怪名稱。你不應該在同一個地方存儲模板和靜態文件(圖像,css和js) – Alasdair

+0

@Alasdair我提供了一個包含更多信息的pastebin。爲什麼在靜態文件夾中有模板是一個壞主意?從客戶端啓用對我的代碼的不需要的訪問?無論如何,我只想爲我的所有子頁面/應用程序的常見元素的文件夾。 – MrVocabulary

回答

1

DIRS設置應該是一個列表。您缺少方括號和尾隨逗號。試試:

'DIRS': [os.path.join(BASE_DIR, 'static_files')], 
+0

呃,確實是一個愚蠢的錯誤,謝謝。現在我必須弄清楚如何讓Django使用該擴展html中引用的CSS,因爲由於某種原因它被忽略了。 – MrVocabulary

+1

從[靜態文件上的文檔]開始(https://docs.djangoproject.com/en/1.11/howto/static-files/#managing-static-files-eg-images-javascript-css),然後詢問新的問題,如果你卡住了。 – Alasdair

+0

我想我只是在錯誤的地方引用它們,但感謝提示:) – MrVocabulary