PyCharm虚拟环境中Django项目仅显示HTML,CSS无法加载求助
Django开发环境静态文件404问题排查与解决
问题说明
在PyCharm的虚拟环境里开发Django应用,解释器能正常识别Django,应用编辑也没问题,但static_files目录下的styles3.css文件一直返回404错误。目前settings.py里的静态配置是:
STATIC_URL = '/static/' STATIC_ROOT = os.path.join(BASE_DIR, 'static_files')
试过加STATICFILES_DIRS配置也没用,而且这个问题只在本地开发服务器出现,部署到线上服务器就正常。
从相关截图可知:
- 项目根目录下确实存在
static_files文件夹,其中包含styles3.css文件 - 终端报错显示
GET /static/styles3.css HTTP/1.1" 404 1655
解决步骤
1. 修正静态文件配置逻辑
STATIC_ROOT是给部署环境用的,只有执行collectstatic命令时,Django才会把所有应用的静态文件收集到这个目录里。本地开发根本不需要靠它加载静态文件,得用STATICFILES_DIRS指定自定义静态目录,同时确保DEBUG模式开启。
更新settings.py的静态配置:
import os BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) STATIC_URL = '/static/' # 部署用的收集目录,开发阶段不用管 STATIC_ROOT = os.path.join(BASE_DIR, 'static_files') # 告诉Django开发时去哪找自定义静态文件 STATICFILES_DIRS = [ os.path.join(BASE_DIR, 'static_files'), ]
2. 确认DEBUG模式开启
开发环境下必须设DEBUG = True,不然Django的开发服务器不会帮你托管静态文件,这是最容易踩的坑。检查settings.py里的配置:
DEBUG = True
3. 模板里用正确的静态引用方式
别直接写死/static/styles3.css,用Django的静态标签生成路径,避免环境差异出问题:
{% load static %} <link rel="stylesheet" href="{% static 'styles3.css' %}">
4. 重启开发服务器
改完settings.py一定要重启Django的runserver,不然新配置不会生效。
5. 检查文件权限
确保static_files文件夹和styles3.css文件有可读权限,PyCharm运行服务器的用户能访问到这些文件。
内容的提问来源于stack exchange,提问作者pythonanus
相关产品推荐
相关产品推荐

