我已经使用Netlify部署了Hugo网站,但是在进行了最新更改之后,我仍然遇到相同的错误,如下所示:
在“部署站点”阶段失败:无效的文件名“ tags / c#/ page / 1 / index.html”。部署的文件名不能包含#或?字符
我在存储库中找不到包含该路径的任何文件,并且index.html也不包含任何这些无效字符。我试图还原更改,但仍然收到相同的部署错误。
我应该在哪里查看回购文件以诊断此问题?
答案 0 :(得分:0)
指向的是一个自动生成的文件,该文件列出了在首页上以“ C#”作为标签的那些页面。因此,查找具有以下内容的页面:
tags: [ 'C#']
在其中。
要解决此问题,您需要将标签更改为“ c-sharp”或类似名称。
或者-检查preserveTaxonomyNames
是否不在您的site.yml中(或设置为false)。
答案 1 :(得分:0)
当我们在 post/markdown 中使用 C# 标签或其他包含 #
的标签时会发生此错误,因为 Hugo 会根据 tags/c#/index.xml
等标签在公共文件夹中生成静态文件。
我们当然可以用 C-Sharp 或类似的其他标签替换,但如果我们仍然想在我们的帖子中看到 C# 标签,有一个解决方法。
例如用 C-Sharp
替换标签后。
tags: ["C-Sharp"]
我们需要覆盖这个新标签将出现的html文件,然后替换以下代码
<a href="{{ "/tags/" | relLangURL }}{{ . | urlize }}/">{{ . }}</a>
与
<a href="{{ "/tags/" | relLangURL }}{{ . | urlize }}/">{{ replace . "-Sharp" "#" }}</a>
请注意,我们将 -Sharp
替换为 #
,这样 C#
仍会出现在我们的帖子中,但 URL 将是 [your-site]/tags/c-sharp/
并且 Hugo 不会生成 {{1 }} 在公共文件夹中。因此,我们可以避免错误。
这是从here总结的。