我试图安装jquery-ui-dist软件包,当我运行collectstatic时,如果url在样式表中的引号内,则whitenoise似乎有问题。
我得到的错误是:
MissingFileError: The file 'jquery-ui-dist/"images/ui-icons_555555_256x240.png"' could not be found with <whitenoise.storage.CompressedManifestStaticFilesStorage object at 0x7fb16b7000b8>.
The CSS file 'jquery-ui-dist/jquery-ui.css' references a file which could not be found:
jquery-ui-dist/"images/ui-icons_555555_256x240.png"
Please check the URL references in this CSS file, particularly any
relative paths which might be pointing to the wrong location.
我看到它似乎认为它正在寻找一个错误的文件名,因为它保留了它周围的引用,并且我认为原因是因为源文件在引用时有url("images/ui-icons_555555_256x240.png")
不必要的,所以我在源文件上运行sed -i 's/\"images\/ui-icons_555555_256x240.png\"/images\/ui-icons_555555_256x240.png/g' jquery-ui.css
,删除了引号,但我仍然得到错误。
我假设whitenoise或jquery-ui-dist软件包有问题,但在问题得到解决之前,我至少需要一个临时解决方案,而我不是甚至确定实际问题在哪里。
修改
我发现导致问题的是css文件中的注释。我不知道为什么whitenoise正在解析评论,除了手动删除这些评论之外我也不知道我能做些什么。
答案 0 :(得分:0)
由于没有其他人有关于此的信息,我决定我会回答我自己的问题,以防人们遇到这个问题并且不读我的编辑。
如果编辑源文件以删除注释,它将解决问题。这样做的问题是,每次更新源文件时,它都会覆盖已编辑的文件,您将无法再次删除注释。
说实话,我最近没有检查过这个问题,看看它是否仍然是一个问题,但我认为它仍然是。
答案 1 :(得分:0)
我只是尝试删除所有jquery css文件中的所有第一个注释块,所以效果很好。 谢谢。
答案 2 :(得分:0)
我也遇到过这个问题。
我想这个问题似乎在 django 社区中也没有得到解决。
请查看以下文章。
虽然我对这个解决方案不满意,但最终我将静态 jquery-ui.min.css
文件放在我的存储库中,而不是通过 npm 安装它。
我删除了导致这个问题的行(whitenoise.storage.MissingFileError: The file 'jquery-ui-dist/"images/ui-icons_555555_256x240.png"' can not be found ...),如下所示。
https://github.com/django-helpdesk/django-helpdesk/issues/479
https://github.com/gwasser/django-helpdesk/commit/fb6e8b0566f4ab51e1bbf512b8724feab8ee3530
他们删除了 jquery-ui.min.css
中的一些注释行。
然后我可以在heroku上使用jquery-ui。
它会工作,但我真的很想通过 npm 安装它。