📜  我的 django 模板不想加载静态文件 - Python (1)

📅  最后修改于: 2023-12-03 14:54:25.086000             🧑  作者: Mango

我的 Django 模板不想加载静态文件 - Python

若你在 Django 模板中配置了静态文件路径却无法加载静态文件,这可能是由于以下原因造成的:

  • 静态文件路径配置有误
  • 静态文件没有存放在正确的文件夹中
  • 静态文件的 URL 地址没有正确设置
  • 缓存未清除

以下是一些解决此问题的步骤:

1. 确认静态文件路径是否正确

settings.py 中配置 STATICFILES_DIRSSTATIC_ROOT 变量以便 Django 能够找到静态文件。

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

STATIC_ROOT = os.path.join(BASE_DIR, 'staticfiles')

其中 STATICFILES_DIRS 变量告诉 Django 在哪里找静态文件,STATIC_ROOT 变量告诉 Django 静态文件应该被收集到哪个文件夹中。

确认以上配置是否与您的文件夹结构匹配,也可以使用 Django 提供的 findstatic 命令查看某个静态文件是否能被找到。

python manage.py findstatic somefile.css

2. 确认静态文件的 URL 是否正确

在模板文件中使用 static 模板标签来引用静态文件,使用 {% load static %} 来加载静态文件模板标签。

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

确保面向公众的 URL 能够正确匹配静态文件的路径,可以在 urls.py 中使用 static 函数来映射静态文件路径。

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

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

如果您使用的是 Django 2.0 或更高版本,可以省略 document_root 参数。

urlpatterns = [
    # ...其他 URL
] + static(settings.STATIC_URL)
3. 清空缓存

有时 Django 可能会缓存静态文件的 URL,导致新的静态文件更改无法在前端生效。请清空缓存并重新启动 Django 以确保静态文件 URL 正确映射。

有关更多详细信息,请参阅 Django 官方文档:Managing static files (development)

祝您成功解决此问题!