2

我正在按照Pelican 文档中的提示 #2在 GitHub 页面上使用自定义域。为了使其正常工作,该CNAME文件需要位于我网站的根目录中。

从文档:

要将自定义域与 GitHub Pages 一起使用,您需要将站点的域放在站点CNAME根目录的文件中。为此,请创建content/extra/目录并向其中添加CNAME文件。然后使用该STATIC_PATHS设置告诉 Pelican 将此文件复制到您的输出目录。例如:

STATIC_PATHS = ['images', 'extra/CNAME']
EXTRA_PATH_METADATA = {'extra/CNAME': {'path': 'CNAME'},}

我已经做到了。我pelicanconf.py的有以下两个设置:

STATIC_PATHS = ['images', 'extra/CNAME']
EXTRA_PATH_METADATA = {'extra/CNAME': {'path': 'CNAME'},}

如文档中所述,我已经创建了我的CNAME文件并将其放置在content/extra/CNAME中。

我像这样发布应用程序:

pelican content --output output --settings pelicanconf.py

output这会在目录中生成我的站点。页面都设置正确。然而,CNAME不是在根源上。相反,它在该extra/CNAME位置。

发布时我没有收到任何错误或警告。如果我使用--debug参数发布,则此行将出现在输出中:

-> Copying H:\mysite\content\extra\CNAME to extra/CNAME

这清楚地表明它正在将其复制到extra而不是根目录。根据文档,我已正确设置我的STATIC_PATHS并将EXTRA_PATH_METADATA其复制到根目录。如何更改我的设置以便将CNAME其复制到正确的位置而不是extra目录?

4

2 回答 2

2

maggick在评论中的评估是正确的。

这可能是与 Windows 相关的问题吗?

基本设置概述中有一点点提及

由相对路径键入的额外元数据字典。与其他 Pelican 文件设置不同,相对路径需要正确的特定于操作系统的目录分隔符(即 UNIX 中的 / 和 Windows 中的 \)。请参阅路径元数据。

(重点是我的)

我一直在使用的路径元数据文档或提示中没有提到这些信息。

由于我在 Windows 上运行它,我的解决方案是更改:

EXTRA_PATH_METADATA = {'extra/CNAME': {'path': 'CNAME'},}

至:

EXTRA_PATH_METADATA = {'extra\CNAME': {'path': 'CNAME'},}
                             ^ This is OS specific

注意字典键中单个更改的斜杠。

于 2015-05-28T16:30:44.120 回答
0

奇怪这种行为。文档清楚地提到,即使在 Windows 中,您也需要使用正斜杠。

从 readthedocs Pelican 3.6.4 - 最新版本

STATIC_PATHS = ['images', 'extra/CNAME']
EXTRA_PATH_METADATA = {'extra/CNAME': {'path': 'CNAME'},}

注意:即使在 Windows 上,也要使用正斜杠 /。但是这个解决方案有效。

于 2015-09-16T06:39:39.810 回答