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.pyINSTALLED_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:静态标签是不可能变成块标签的吗?

Django:无效的块标签'form.username'

Django 无效的块标签:'endfor',预期的'endblock'

Google App Engine Python django TemplateSyntaxError:无效的块标签:'endif'

django cms - 无效的块标签 endblock

第 3 行的块标记无效:“原始”。您是不是忘记注册或加载此标签?使用 Django 1.9 和 Jinja2