django设置DEBUG=false时无法引用静态链接解决

lingmeng 发布于 7 天前 17 次阅读


现象进入/admin无法加载js和css

[24/Jun/2025 16:30:48] "GET /static/admin/css/base.css HTTP/1.1" 404 179
[24/Jun/2025 16:30:48] "GET /static/admin/css/login.css HTTP/1.1" 404 179
[24/Jun/2025 16:30:48] "GET /static/admin/css/dark_mode.css HTTP/1.1" 404 179
[24/Jun/2025 16:30:48] "GET /static/admin/css/nav_sidebar.css HTTP/1.1" 404 179
[24/Jun/2025 16:30:48] "GET /static/admin/css/responsive.css HTTP/1.1" 404 179
[24/Jun/2025 16:30:48] "GET /static/admin/js/theme.js HTTP/1.1" 404 179
[24/Jun/2025 16:30:48] "GET /static/admin/css/base.css HTTP/1.1" 404 179
[24/Jun/2025 16:30:48] "GET /static/admin/js/nav_sidebar.js HTTP/1.1" 404 179
[24/Jun/2025 16:30:48] "GET /static/admin/css/dark_mode.css HTTP/1.1" 404 179
[24/Jun/2025 16:30:48] "GET /static/admin/css/nav_sidebar.css HTTP/1.1" 404 179
[24/Jun/2025 16:30:48] "GET /static/admin/css/responsive.css HTTP/1.1" 404 179
[24/Jun/2025 16:30:48] "GET /static/admin/css/login.css HTTP/1.1" 404 179

解决方法

1.检查是否存在static文件没有使用python manage.py collectstatic,这样django会自动把全部样式复制到当前目录

2.settings.py文件添加:

STATIC_URL = '/static/'
BASE_DIR = Path(__file__).resolve().parent.parent
STATIC_ROOT = os.path.join(BASE_DIR, 'static')

3.urls.py中添加:

from django.urls import path,include,re_path
from django.views.static import serve
urlpatterns = [
    path('admin/', admin.site.urls),
    re_path(r'^static/(?P<path>.*)$', serve, {'document_root': settings.STATIC_ROOT}),
]

再去访问/admin样式正常加载

此作者没有提供个人介绍
最后更新于 2025-06-24