执行collectstatic时,Whitenoise在jquery-ui.css上给出错误

时间:2017-11-11 14:26:08

标签: python django whitenoise

我试图安装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正在解析评论,除了手动删除这些评论之外我也不知道我能做些什么。

3 个答案:

答案 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 安装它。