【问题标题】: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”部分
  • 我试过单引号 - 不开心

标签: python django


【解决方案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://stackoverflow.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?
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-07-18
        • 2016-01-26
        • 2015-02-10
        • 2014-08-18
        • 2012-03-09
        • 2014-05-04
        相关资源
        最近更新 更多