【问题标题】:django collect static looking for nonexistent directorydjango收集静态寻找不存在的目录
【发布时间】:2014-05-06 17:33:52
【问题描述】:

我正在本地运行一个现有项目。我正在尝试收集静态内容以查看我的 CSS、图像等。

我的项目结构如下:

我的项目名称

--- 我的项目名称

--- --- 我的项目名称

--- --- --- 设置

--- --- --- --- base.py (setting.py)

--- --- 静态

--- --- --- 图片

Settings 设置了以下静态值:

STATIC_ROOT = '/Users/myuser/myprojectname/myprojectname'
STATIC_URL = '/static/'

STATICFILES_DIRS = (
    #normpath(join(SITE_ROOT, 'static')),
    os.path.join(BASE_DIR, "static"),
    '/Users/myuser/myprojectname/myprojectname/static',
)

我尝试在我的模板页面中查看图像,如下所示:

{% load staticfiles %}

<img src="{% static "image/logo.png" %}" alt="My image"/>

图片无法加载。当我看到图像的路径时,一切看起来都很好,它指向:localhost/static/image/logo.png

当我尝试收集静态时,我收到以下错误:

for entry in os.listdir(path):
OSError: [Errno 2] No such file or directory: '/Users/myuser/myprojecname/myprojectname/myprojectname/static'

*注意它正在寻找 3 个 myprojectname 目录。

问题是我看不到像这张图片这样的静态内容。我做错了什么?

【问题讨论】:

  • 我注意到您可以互换使用“myprojecname”和“myprojectname”。这是笔误吗?
  • 看起来它正在寻找/Users/myuser/myproject/myproject/myproject/static 并且需要/Users/myuser/myproject/myproject/static。请注意,“myproject”在前者中出现三次,而在后者中仅出现两次。
  • 我确实看到了,但为什么要查看 3 次?

标签: python django django-staticfiles django-settings


【解决方案1】:

我认为您在这里有些困惑。 STATICFILES_DIRS 是您从中收集的目录列表(以及应用程序中的所有其他静态文件夹)

STATIC_ROOT 是放置您正在收集的静态文件的位置。 所以它们不能是同一个文件夹。

【讨论】:

  • 那么我应该如何更改它们呢?这在其他几个项目中对我有用。你能看到当我收集静态文件时它正在查看 myprojectname 的 3 个目录吗?
猜你喜欢
  • 2020-12-22
  • 2014-01-25
  • 1970-01-01
  • 2020-05-05
  • 2012-10-30
  • 1970-01-01
  • 1970-01-01
  • 2012-06-05
  • 1970-01-01
相关资源
最近更新 更多