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

Whitenoise giving errors on jquery-ui.css when doing collectstatic

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

由于没有其他人知道这方面的信息,我决定我会回答我自己的问题,以防人们遇到这个问题并且不阅读我的编辑。

如果您编辑源文件以删除注释,则可以解决该问题。这样做的问题是,每次更新源文件时,它都会覆盖已编辑的文件,并且您将再次卡在删除评论中。

老实说,我最近没有检查过这个问题,看在回复时它是否仍然是一个问题,但我认为它仍然是。

我只是尝试删除所有 jquery css 文件中的所有第一个注释块,并且效果很好。 谢谢。

我也遇到了这个问题
我认为这个问题似乎还没有在 django 社区中得到解决。
请看以下文章。

虽然我对这个解决方案不满意,但最终我将静态 jquery-ui.min.css 文件放在我的存储库中,而不是通过 npm 安装它。
我删除了导致此问题的行(whitenoise.storage.MissingFileError:找不到文件 'jquery-ui-dist/"images/ui-icons_555555_256x240.png"' ...),如下所示。

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