【问题标题】:Fixing 'Invalid Filename' Deploy Error in Hugo修复 Hugo 中的“无效文件名”部署错误
【发布时间】:2021-02-21 23:52:01
【问题描述】:

我已经使用 Netlify 部署了我的 Hugo 网站,但是在我最近的更改之后,我不断收到如下相同的错误:

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

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

我应该在哪里查看我的 repo 文件来诊断这个问题?

【问题讨论】:

    标签: hugo netlify


    【解决方案1】:

    这指向一个自动生成的文件,该文件列出了在前面的内容中具有“C#”作为标签的那些页面。因此,请查找具有以下内容的页面:

    tags: [ 'C#']
    

    在里面。

    为了修复,您需要将标签更改为“c-sharp”或类似的东西。

    或者 - 检查preserveTaxonomyNames 是否不在您的 site.yml 中(或设置为 false)。

    【讨论】:

    • 我发现了这个错误!我有一个包含标记 C# 的降价文件,它显然不支持 # 字符。谢谢!
    【解决方案2】:

    当我们在post/markdown中使用C#标签或其他包含#的标签时会发生此错误,因为Hugo会根据tags/c#/index.xml等标签在public文件夹中生成静态文件。

    我们当然可以用 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# 仍会出现在我们的帖子中,但网址将为[your-site]/tags/c-sharp/,并且Hugo 不会在公共文件夹中生成tags/c#/index.xml。因此,我们可以避免错误。

    这是从here总结的。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-07-15
      • 2016-03-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多