2017-06-14 47 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