在 Django 中配置静态文件(static files)主要涉及 开发环境 和 生产环境 两种情况。下面详细说明。
在 settings.py 中通常需要配置以下几个变量:
import os
from pathlib import Path
BASE_DIR = Path(__file__).resolve().parent.parent
# 静态文件URL前缀
STATIC_URL = '/static/'
# 开发时Django查找静态文件的目录
STATICFILES_DIRS = [
BASE_DIR / 'static', # 项目根目录下的 static 文件夹
]
# 生产环境静态文件收集目录
STATIC_ROOT = BASE_DIR / 'collected_static'
{% load static %}
<img src="{% static 'images/logo.png' %}" alt="logo">
目录结构示例:
project/
├── static/
│ └── images/
│ └── logo.png
INSTALLED_APPS = [
...
'django.contrib.staticfiles',
]
Django 在 DEBUG=True 时会自动处理 /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)
生产环境 Django 不再提供静态文件,需要由 Nginx / Apache 处理。
python manage.py collectstatic
会把所有 app 和 STATICFILES_DIRS 中的静态文件复制到 STATIC_ROOT。
location /static/ {
alias /path/to/your/project/collected_static/;
}
每个 app 也可以有自己的 static 目录:
myapp/
└── static/
└── myapp/
└── style.css
模板中使用:
{% static 'myapp/style.css' %}
这样可以避免不同 app 的静态文件冲突。
STATIC_URLDEBUG=Truecollectstatic 已执行{% load static %} 在模板顶部如果你愿意,可以告诉我:
我可以给你更具体的配置示例。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。