You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Django生产环境静态文件无法加载问题求助

解决Django生产环境静态文件加载失败问题

针对你遇到的WARNING:django.request:Not Found: /static/admin/css/base.css及其他静态文件未找到的问题,结合你的配置和目录结构,以下是具体解决步骤:

1. 修正settings.py的静态文件配置

你的STATIC_ROOT指向了项目根目录的static/,但实际收集的静态文件存放在staticfiles/目录,这会导致collectstatic命令把文件放到错误位置。修改settings.py:

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

重新执行收集静态文件命令,确保包括admin在内的所有静态文件都被收集到正确目录:

python manage.py collectstatic

2. 修正Apache的静态文件Alias配置

当前Apache的Alias指向的是你自己的静态源文件目录static/,而非生产环境需要的收集后目录staticfiles/。修改httpd.conf和httpd-ssl.conf中的配置:

Alias /static/ "C:/Users/MyUser/Desktop/MyProject/staticfiles/"

<Directory "C:/Users/MyUser/Desktop/MyProject/staticfiles">
    Require all granted
</Directory>

注意路径末尾的斜杠要保持一致,避免匹配错误。

3. 修复wsgi.py的配置错误

你的wsgi.py存在两处关键问题:

  • DJANGO_SETTINGS_MODULE配置错误:项目settings在MyProject2/目录下,应改为MyProject2.settings而非HaltScanner.settings
  • sys.path添加顺序错误:需先添加项目目录到PYTHONPATH,再导入settings,否则可能导致模块找不到

修正后的wsgi.py:

import os
import sys

# 先添加项目目录到PYTHONPATH
sys.path.append(r'C:\Users\MyUser\Desktop\MyProject')

os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'MyProject2.settings')

from django.core.wsgi import get_wsgi_application
from django.contrib.staticfiles.handlers import StaticFilesHandler
from django.conf import settings

if settings.DEBUG:
    application = StaticFilesHandler(get_wsgi_application())
else:
    application = get_wsgi_application()

# 调试输出(可选保留)
print("PYTHONPATH:", sys.path)
print("Current Working Directory:", os.getcwd())
print("STATIC_ROOT:", settings.STATIC_ROOT)

4. 验证配置并重启服务

  • 重启Apache服务,确保新的Alias配置生效
  • 重启Waitress服务器,使用正确的命令:
waitress-serve --listen=127.0.0.1:8000 MyProject2.wsgi:application

(注意需指定MyProject2.wsgi,因为wsgi.py在MyProject2目录下)

额外检查点

  • 确认staticfiles/目录下存在admin/文件夹,包含css、js等静态文件(执行collectstatic后应自动生成)
  • 检查Windows路径权限:确保Apache进程有读取staticfiles/目录的权限
  • 确认DEBUG确实为False,Django在DEBUG=False时不会自动处理静态文件,完全依赖Apache或其他静态文件服务

内容的提问来源于stack exchange,提问作者TonWard

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.09 10:43:16