我想下载网页以供离线查看。我特别想下载这个网页:SEP 上的莱布尼茨条目,所以我在终端中运行以下命令
wget -p -np https://plato.stanford.edu/entries/leibniz/
它应该下载显示网页所需的图像等,但不会提升到父目录。
但是,当我打开下载的网页时,网页上的一些图标丢失了。具体来说,下图显示了下载的网页中缺少的一些图标。 (我从不同的浏览器得到相同的结果)
这是原始网页的左上角:
这是下载的网页的左上角:
我发现所有丢失的图标都来自一种名为“字体真棒”。下载网页时wget
,它确实为我提供了一个名为“font”的子目录,其中包含名称包含字符串“fontawesome”的文件,因此wget
确实识别出该网页以某种方式使用了这种字体。
有谁知道为什么下载的网页中不显示图标?
答案1
问题是wget
用完整的查询字符串保存字体名称,所以你有fontawesome-webfont.ttf?v=3.2.1
另一方面,浏览器在发出请求时会抛出查询字符串部分 ( ?v=3.2.1
) 并尝试仅请求fontawesome-webfont.ttf
。
老实说,我不知道“谁应该受到责备” - wget 还是浏览器。
fontawesome-webfont.ttf?v=3.2.1
您可以通过简单地将文件链接设置为 来修复这些图标fontawesome-webfont.ttf
。
这不是新问题。其他人也遇到过这种情况https://gist.github.com/pigeonflight/f8d5d6efbadf8cb341d6a44d17de3d59(有趣的是 - 这是相同的字体!)。
我对这个问题的解决方案是使用 option 来避免 unix 文件命名模式--restrict-file-names=windows
。这迫使 wget 在许多其他东西中使用(参见手册),@
而不是使用标记来?
正确工作。