【问题标题】:ValueError: Missing staticfiles manifest entry even after collectstaticValueError:即使在 collectstatic 之后也缺少静态文件清单条目
【发布时间】:2023-03-06 19:05:01
【问题描述】:

我收到服务器错误,因为 django 找不到我的静态文件之一,即使我可以在文件夹中看到它:

ValueError: Missing staticfiles manifest entry for 'staticfiles\assets\img\icons\theme\communication\adress-book-2.svg'

我在静态和静态文件中都看到了这个文件夹中的文件:

static\assets\img\icons\theme\communication\

模板中的文件路径:

{% load static %}
              <img src="{% static 'assets\img\icons\theme\communication\adress-book-2.svg' %}" alt="Confirmation Icon" class="icon bg-primary" data-inject-svg="data-inject-svg">

运行collectstatic 没有任何效果。有什么想法吗?

谢谢!

编辑:忘记添加 settings.py 静态设置:

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

# Extra places for collectstatic to find static files.
STATICFILES_DIRS = (
    os.path.join(BASE_DIR, 'static'),
)

DEBUG_PROPAGATE_EXCEPTIONS = True

STATICFILES_STORAGE = 'django.contrib.staticfiles.storage.StaticFilesStorage'

【问题讨论】:

  • 该目录中的其他静态文件是否有效?
  • 是的。我没有看到任何其他崩溃。虽然有趣的是,当我检查源代码时,看起来有些图像是从 /static/ 而不是 /staticfiles/ 加载的
  • 为什么会有2个静态文件目录?
  • 老实说,我不知道。我是 django 新手并将部署推送到 heroku。我阅读了加载静态文件的内容,当我运行收集静态文件时,它创建了第二个文件夹,可能基于我的 settings.py。也许这就是问题
  • 第二个文件夹是因为你的 settings.py 而创建的

标签: django


【解决方案1】:

首先你应该删除说:

# Extra places for collectstatic to find static files.
STATICFILES_DIRS = (
    os.path.join(BASE_DIR, 'static'),
)

然后你可以保留前两行:

STATIC_ROOT = os.path.join(BASE_DIR, 'Folder') #either put static or staticfiles and then remove the other folder
STATIC_URL = '/static/'

【讨论】:

  • 感谢到目前为止的帮助。不幸的是,我仍然收到错误Missing staticfiles manifest entry
  • 如果我尝试运行 staticfiles 命令,它说它将在设置中指定的目的地收集静态文件到 staticfiles,即使我更改了这些设置也不会说静态
  • 如果您运行该命令,它是否仍会创建一个新文件夹?
  • 是的。我实际上并没有删除文件夹,但命令说 0 个静态文件复制到 staticfiles
  • 会不会是因为已安装应用中的'django.contrib.staticfiles',
猜你喜欢
  • 2020-11-19
  • 2017-10-24
  • 2018-10-05
  • 2020-01-15
  • 2020-02-01
  • 2021-06-06
  • 2017-02-15
  • 1970-01-01
  • 2020-11-18
相关资源
最近更新 更多