ValueError:即使在 collectstatic 之后也缺少静态文件清单条目
Posted
技术标签:
【中文标题】ValueError:即使在 collectstatic 之后也缺少静态文件清单条目【英文标题】:ValueError: Missing staticfiles manifest entry even after collectstatic 【发布时间】:2020-10-14 00:41:14 【问题描述】:我收到服务器错误,因为 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' %" 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 而创建的 【参考方案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',
?以上是关于ValueError:即使在 collectstatic 之后也缺少静态文件清单条目的主要内容,如果未能解决你的问题,请参考以下文章
ValueError:在昏暗 2 处预期长度为 0 的序列(得到 1)