首页 > 解决方案 > Django - 静态文件无法正常工作

问题描述

在我的项目中,我有一个注册页面。在注册页面中,我的静态文件夹中有一个指向 css 文件的链接。但是,css 并未应用于文档。

这是我的代码 - settings.py

STATIC_ROOT = os.path.join(BASE_DIR, 'static'),
STATIC_URL = '/static/'

urls.py

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

在我的一个应用程序文件夹中,我有一个名为“静态”的文件夹。

然后,我在文档中引用此静态文件夹中的文件:

    {% load static %}
    <link rel="stylesheet" href="{% static 'signup.css' %}">
    <h1 class="myh1">YO!</h1>

因为我处于开发模式,所以我没有运行 collectstatic 命令。有谁知道为什么没有将 css 更改应用于 html 页面?谢谢你。

标签: django

解决方案


那是因为你忘了告诉 Django 去查看你的静态文件夹

假设您有一个名为my_app. 关于您所说的,您的目录结构如下所示:

.
└── your_project
    ├── my_app
    │   ├── static
    │   │   ├── my_app
    │   │   │   ├── css_file.css
    │   │   │   └── ...
    │   │   └── ...
    │   └── ...
    └── your_project
        ├── settings.py
        └── ...

然后,您需要在您settings.py的每个应用程序中添加以下行your_project

STATIC_URL = '/static/' # <--- you did this one
STATIC_ROOT = os.path.join(BASE_DIR, "static/") # <--- also this one
STATICFILES_DIRS = [
    [...]
    os.path.join(BASE_DIR, 'my_app', 'static'), # <--- you're missing that!
]

你几乎完成了,太糟糕了!

此外,不要忘记强制刷新页面,以便重新加载缓存(如果您在开发中不这样做,则不一定会更新更改!)


推荐阅读