Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/359.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 发布Pelican博客时未将CNAME文件复制到根输出_Python_Github_Pelican - Fatal编程技术网

Python 发布Pelican博客时未将CNAME文件复制到根输出

Python 发布Pelican博客时未将CNAME文件复制到根输出,python,github,pelican,Python,Github,Pelican,我遵循Pelican文档,利用GitHub页面上的自定义域。要使其正常工作,CNAME文件必须位于我的站点的根目录下 从文档: 要将自定义域与GitHub页面一起使用,您需要将站点的域放在站点根目录下的CNAME文件中。为此,请创建content/extra/目录并向其中添加CNAME文件。然后使用静态路径设置告诉Pelican将此文件复制到输出目录。例如: STATIC_PATHS = ['images', 'extra/CNAME'] EXTRA_PATH_METADATA = {'extr

我遵循Pelican文档,利用GitHub页面上的自定义域。要使其正常工作,
CNAME
文件必须位于我的站点的根目录下

从文档:

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

STATIC_PATHS = ['images', 'extra/CNAME']
EXTRA_PATH_METADATA = {'extra/CNAME': {'path': 'CNAME'},}
我已经这样做了。My
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
这将在
输出
目录中生成我的站点。所有页面都设置正确。但是,
CNAME
不在根目录下。相反,它位于
extra/CNAME
位置

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

-> Copying H:\mysite\content\extra\CNAME to extra/CNAME
这清楚地表明它正在将其复制到
extra
而不是根目录。根据文档,我已经正确地设置了
静态路径
额外路径
元数据,以便将其复制到根目录。如何更改设置,以便将
CNAME
复制到正确的位置,而不是
extra
目录?

在评论中的评估是正确的

这可能是Windows相关的问题吗

报告中有一点提到

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

(重点是我的)

我一直在使用的文档或中都没有提到这一小道消息

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

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


注意dictionary键中的单个已更改斜杠

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

来自readthedocs Pelican 3.6.4-最新版本

STATIC_PATHS = ['images', 'extra/CNAME']
EXTRA_PATH_METADATA = {'extra/CNAME': {'path': 'CNAME'},}
注意:即使在Windows上,也要使用正斜杠、/。
但是这个解决方案是有效的。

文件应该在
content/extra/CNAME
中,这就是您所说的“文件
extra/CNAME
存在并已填充”的意思吗?是的。文档假定
内容
是静态路径行为的根。我有相同的配置,它在Linux上运行良好。这可能是Windows相关的问题吗?那很不幸,但这是可能的。不过,我现在还没有一个Linux测试箱可以用来验证/否认这个假设。这似乎是Pelican 3.6相对于旧版本的一些变化。
STATIC_PATHS = ['images', 'extra/CNAME']
EXTRA_PATH_METADATA = {'extra/CNAME': {'path': 'CNAME'},}