在Hugo中修复“无效文件名”部署错误

时间:2019-01-07 18:02:47

标签: hugo netlify

我已经使用Netlify部署了Hugo网站,但是在进行了最新更改之后,我仍然遇到相同的错误,如下所示:

  

在“部署站点”阶段失败:无效的文件名“ tags / c#/ page / 1 / index.html”。部署的文件名不能包含#或?字符

我在存储库中找不到包含该路径的任何文件,并且index.html也不包含任何这些无效字符。我试图还原更改,但仍然收到相同的部署错误。

我应该在哪里查看回购文件以诊断此问题?

2 个答案:

答案 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总结的。