📜  静态目录 django - Python (1)

📅  最后修改于: 2023-12-03 15:42:26.326000             🧑  作者: Mango

静态目录 Django - Python

在 Django 中,静态目录是存储用于前端页面的静态文件的目录,例如样式表、脚本文件和图像等。Django 在运行中自动将这些静态文件提供给用户,并且可以自动处理它们的 URL。

配置静态目录

Django 项目中的静态目录被放置在应用程序的根目录下,由于每个应用程序都有一个 static 目录,因此 Django 可以轻松地找到您的静态文件。

要在 Django 中启用静态文件,请按以下步骤操作:

  1. 确保在 settings.py 文件中包含以下内容:
# settings.py

# 设置静态目录标识符的名称,通常为 "static"
STATIC_URL = '/static/'

# 静态文件的路径,存储在项目中的 static 目录下
STATICFILES_DIRS = [
    BASE_DIR / "static",
]

# 用于收集静态资源的应用程序的列表
INSTALLED_APPS = [
    ...
    'django.contrib.staticfiles',
    ...
]
  1. 在 HTML 模板中包含静态文件的 URL:
{% load static %}

<img src="{% static 'images/logo.png' %}" alt="My logo">
<link rel="stylesheet" href="{% static 'css/mystyles.css' %}">

通过将 load static 加载到模板中,您可以使用 static 模板标签,例如 {% static 'images/logo.png' %}。这将被转换为与您在 settings.py 中设置的 STATIC_URL 匹配的 URL。

动态加载静态文件

在开发过程中,修改静态文件时,您需要重新启动 Django 开发服务器。这使得迭代开发更加耗时。有两个选项可帮助您在开发过程中加载新的静态文件。

1. 调试模式

DEBUG 设置为 True,Django 会在一个特殊的调试模式下运行。在这种模式下,当请求任何静态文件时,Django 将自动查找并加载最新的文件。

# settings.py

DEBUG = True

注意:不要在生产环境中使用调试模式。调试模式会泄漏有关项目的安全敏感信息。

2. Django 自动重新加载静态文件

安装 django-staticfiles-resolver 插件,该插件在静态文件被修改时,会自动重新加载。

pip install django-staticfiles-resolver

在安装完插件之后,您需要运行以下命令以收集静态文件:

python manage.py collectstatic -c

-c 指令会为静态文件的更改设置自动重载器。通过这个选项,Django 会在访问静态文件时自动重新加载它们,因此您无需重新启动服务器。

总结

在 Django 中,您可以通过将静态文件放到应用程序的根目录中的 static 目录中并使用 load static 模板标签来使用静态资源。通过配置 DEBUG 选项或安装 django-staticfiles-resolver 插件,您可以自动重新加载静态文件,而无需重新启动服务器。