【问题标题】:Django not finding the static filesDjango找不到静态文件
【发布时间】:2019-06-24 05:07:29
【问题描述】:

我正在创建 django 项目,所以根目录没有任何静态文件夹我分别在两个应用程序 admin_panel 和项目中有两个静态文件夹但是当我运行 python manage.py collectstatic 它显示文件或文件夹未找到:

注意:virtualenv 是项目文件夹,不是 venv 环境

FileNotFoundError: [Errno 2] No such file or directory: '/home/tbosss/Desktop/environment/virtualenv/myproject/static'

STATICFILES_DIRS = (

('admin_panel', os.path.join(BASE_DIR, 'admin_panel', 'static')),
('project', os.path.join(BASE_DIR, 'project', 'static')),

)

STATIC_ROOT = '/static'

我不知道静态根目录的价值是什么,因为我的应用程序中有两个静态文件夹不在根目录下

【问题讨论】:

  • STATIC_ROOT的值是多少?
  • BASE_DIR 的值是什么? STATIC_ROOT 的价值是什么?我是否正确,您的项目目录位于 virtualenv 文件夹内?为什么?
  • 请注意,您无需在 STATICFILES_DIRS 中列出您的应用程序 static 子文件夹 - 这些将被自动检测到。 STATICFILES_DIRS 用于其他个位置。
  • virtualenv 是文件夹名称而不是 vnev 环境
  • 尝试为 STATIC_ROOT 指定绝对路径。

标签: django python-venv


【解决方案1】:

检查 settings.py 中的 BASE_DIR 是否指向您的项目基目录:

BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))

现在,根据您的 FileNotFoundError,静态文件夹目录应该位于项目基目录中。所以,STATIC_ROOT应该是:

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

【讨论】:

  • 我在项目根目录中没有任何静态文件夹,我只想加载我的应用程序静态文件夹
  • 当你运行collectstatic时,它会从STATICFILES_DIRS中列出的目录中收集静态文件并放到STATIC_ROOT目录中. STATIC_ROOT 目录是自动创建的。然后 Django 从 STATIC_ROOT 目录提供这些静态文件。
猜你喜欢
  • 2021-08-27
  • 2014-11-10
  • 2011-08-26
  • 2020-06-22
  • 2021-08-16
  • 2020-06-20
相关资源
最近更新 更多