Django-静态文件无法正常工作

时间:2019-12-27 22:53:04

标签: 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)

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

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

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

我还没有像在开发模式下那样运行collectstatic命令。有人知道为什么CSS更改未应用到html页面吗?谢谢。

1 个答案:

答案 0 :(得分:1)

那是因为您忘了告诉Django实际上在静态文件夹中查找look

假设您有一个名为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!
]

您快完成了,太糟糕了! ?

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