Django无效的块标签:'静态'
Posted
技术标签:
【中文标题】Django无效的块标签:\'静态\'【英文标题】:Django Invalid block tag: 'static'Django无效的块标签:'静态' 【发布时间】:2016-04-12 07:05:03 【问题描述】:我的 base.html 的 <head>
中有这个。
% load staticfiles %
<link rel="stylesheet" type="text/css" href="% static "myStyleSheet.css" %">
我得到错误无效的块标签:'static'
在我已经包含的 INSTALLED_APPS 中
'django.contrib.staticfiles',
我已经包含在 settings.py 中
STATIC_URL = '/static/'
STATIC_ROOT = os.path.join(os.path.dirname(__file__), "static/")
为什么会出现加载错误?
【问题讨论】:
尝试在myStyleSheet.css
周围使用单引号而不是双引号。
错误出现在 html 的“% static”部分
我试过单引号 - 不开心
【参考方案1】:
我很遗憾地说,这里的实际问题是,在我的 app.yaml 文件中,我为静态文件指定了一个不同的目录,它似乎覆盖了其他所有内容。删除后,全部排序。
【讨论】:
【参考方案2】:这里有很多答案,但也试试这个。我将描述一切。忘记并清除之前添加的任何内容,然后按照这些提示进行操作
1- 在您的 settings.py 和 INSTALLED_APPS
中应该有'django.contrib.staticfiles',
还有STATIC_URL = '/static/'
。默认情况下,它存在于文件末尾,但请自行检查
2- 在 settings.py 你的TEMPLATES
应该如下所示
TEMPLATES = [
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'DIRS': [os.path.join(BASE_DIR,'templates')],
'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',
'django.core.context_processors.static',
],
,
,
]
不要再尝试添加这个了!只是检查错误
3- static
文件夹必须在应用程序目录中,而不是您的项目主目录中
project
-application
-migrations
-static
-templates
4- 在static
文件夹中为您的文件创建子目录,例如
project
-application
-static
-css
-js
-img
-....
-....
并将您的文件放入特定文件夹
5- 现在在您的 HTML 文件中添加% load staticfiles %
文件的第一个文件,并且在您需要静态文件的任何地方尝试像下面这样添加它
<link href="% static "css/myStyleSheet.css" %" rel="stylesheet">
或
<link rel="icon" href="% static "img/favicon.png" %">
如果您遵循这些提示,一切都应该没问题。再次测试并报告
【讨论】:
【参考方案3】:你可以改变
href="% static "myStyleSheet.css" %"
到
href="% static 'myStyleSheet.css' %"
myStyleSheet.css
的单引号
【讨论】:
【参考方案4】:似乎一切都很好。检查static
这个词是不是只用英文字母写的,可能是这个原因。
【讨论】:
全是英文字母【参考方案5】:使用% load static %
或% load static from staticfiles %
请查看https://***.com/a/27516199/263989
【讨论】:
使用我得到的消息:'static' is not a valid tag library: Template library static not found, Try django.templatetags.static,django.contrib.staticfiles.templatetags.static【参考方案6】:您的TEMPLATE
设置中有django.core.context_processors.static
上下文处理器吗?这是一个示例:
TEMPLATES = [
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'DIRS': [],
'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',
'django.core.context_processors.static',
],
,
,
]
您可以在此处添加它或在模板中使用 %load static %
。
【讨论】:
我刚刚尝试添加它(到 settings.py),但没有任何区别 您不需要添加整个块,只需找到TEMPLATES
部分,找到context_processors
部分并将其添加到最后。
我使用了以下内容:TEMPLATE_CONTEXT_PROCESSORS = ('django.contrib.auth.context_processors.auth', 'django.core.context_processors.request', 'django.core.context_processors.static', ) 现在给我一个不同的错误,即:模块“django.core.context_processors”没有定义“静态”可调用请求处理器
你用的是什么版本的 Django?以上是关于Django无效的块标签:'静态'的主要内容,如果未能解决你的问题,请参考以下文章
Django 无效的块标签:'endfor',预期的'endblock'
Google App Engine Python django TemplateSyntaxError:无效的块标签:'endif'