css - Django:无法加载/static 中的 CSS 文件

标签 css django static

自从我完成了 Django 网站的后端后,我开始添加一些样式。 显示了我的 html 文件,但似乎没有 css 链接到它们,但是当我在 Firefox 中显示源代码时路径是正确的。

mywebsite/
----blog/
----mywebsite/
----static/
--------css/
------------struct.css
----templates/
--------layouts/
--------errors/
------------404.html
--------html/
------------struct.html

Django 版本:2.1.7

设置.py:

DEBUG = False
ALLOWED_HOSTS = ['*']

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

STATIC_URL = '/static/'
STATICFILES_DIRS = [
    os.path.join(BASE_DIR, "static"),
]

urls.py:

from django.conf import settings
from django.conf.urls.static import static

urlpatterns = [
    # ...
] + static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)

struct.html:

{% load static %}

<!DOCTYPE html>
<html lang="en" dir="ltr">

  <head>

    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width; initial-scale=1.0;">

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

    <title>test</title>

  </head>

  <body>

    <p>test</p>


  </body>

</html>

结构.css:

p{
    color:red:
}
body{
    background-color:black:
}

最佳答案

一般静态文件路径应该是这样的 appname/static/appname/yourfiles 无需更改网址格式。

假设您的应用名称是 Myapp ,您的 css 文件的正确路径是

Myapp/static/Myapp/css/struct.css

要包含静态文件,在settings.py中添加下面一行

STATIC_URL = '/static/'

在你的html模板中

<!doctype html>
{% load static %}
<link rel="stylesheet" href="{% static 'Myapp/css/struct.css' %}">

如果您在应用程序中拥有静态文件,则无需使用

STATICFILES_DIRS = [
    os.path.join(BASE_DIR, "static"),
]

可以引用Managing Static Files在 django 文档中。

关于css - Django:无法加载/static 中的 CSS 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55709626/

相关文章:

c++ - 静态函数是否隐藏同名的非静态函数?

html - 子 DIV 的全屏宽度

firefox - 为什么这个 CSS 在 Firefox 中不起作用?

html - webkit 在列表中的 float 元素后面显示元素符号

django - 如何让外键 ('self' ) 的管理员禁止引用自身?

python - 构建具有动态数量字段的 Django 优雅过滤器

javascript - ScrollMagic 在 IE11 中不工作

python - Django 查询集,其中字段值位于列表中

c# - ThreadStatic 属性如何工作?

java - 如何在扩展Application类的类中的静态方法中调用getApplicationContext?