首页 > 解决方案 > 无法在 Django 中加载 CSS

问题描述

我是 Django 新手,现在加载 css 文件时遇到问题。我的 Windows 系统中有这个目录树:

情况1:

.
|__myproject
      |__+myproject
      |__+myapp
      |__-static
      |      |__-css
      |           |__style.css
      |__-templates
              |__base.html

base.html =>

<!DOCTYPE html>
{% load static %}
<html>
  <head>
    <link rel="stylesheet" href="{% static 'css/style.css' %}"  type="text/css">
  </head>
  <body>
    # ...
  </body>
</html>

设置.py =>

BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
TEMPLATE_DIR = os.path.join(BASE_DIR, "templates")
STATICFILES_DIR = os.path.join(BASE_DIR, "static")

STATIC_URL = '/static/'
STATICFILES_DIRS = [
    STATICFILES_DIR,
]

INSTALLED_APPS = [
    # ...
    'django.contrib.staticfiles',
    # ...
]

TEMPLATES = [
    {
        # ...
        'DIRS': [TEMPLATE_DIR,],
        # ...
    },
]

使用这些设置和配置,无法加载 CSS 文件。

但是当我将目录树更改为此:

案例2:

.
|__+myproject
|__+myapp
      |__-static
      |      |__style.css
      |__-templates
             |__base.html

和 base.html =>

# ...
<link rel="stylesheet" href="{% static 'style.css' %}"  type="text/css">
# ...

现在它正在工作。

那么案例1有什么问题呢?这里缺少什么?

标签: cssdjango

解决方案


你写了一些不方便的代码。

  1. <!DOCTYPE html>应该是第一行。然后{% load static %}

2.使用不同类型的报价。(" " 和 ' ') 用于 href 和 static。

3.在链接中使用 type="text/css"。像这样-

<link rel="stylesheet" href="{% static 'css/style.css' %}"  type="text/css">

*在您的代码计算机中,(“{% static”)和(“%}”)是两个单独的字符串,因此style.css超出了语法范围。对于这种特殊情况(引号内的引号)python 支持 (" ") 和 (' ')(请参阅文本颜色)*

我希望这会有所帮助。谢谢。


推荐阅读