gpt4 book ai didi

python - 为什么从包含问号的 rst 文件转换的 html 文件在单击目录时无法在浏览器上显示?

转载 作者:行者123 更新时间:2023-12-04 15:28:48 27 4
gpt4 key购买 nike

请下载文件 simple.7z 并安装在您的狮身人面像中以重现我在此处描述的问题,为了重现它,您可以运行:

make clean
make html

download and install in your sphinx to reproduce issues
sample/source中有两篇文章,内容相同,只是标题不同。
cd  sample
ls source |grep "for-loop"
What does "_" in Python mean in a for-loop.rst
What does "_" in Python mean in a for-loop?.rst

一个包含 ? ,另一个不包含 ?
运行 make html 后发生了奇怪的事情。
make html
ls build/html|grep "for-loop"
What does "_" in Python mean in a for-loop.html
What does "_" in Python mean in a for-loop?.html

please see the tile after running <code>make html</code>
问题 1:
为什么 Firefox 将所有内容都显示为 What does “_” in Python mean in a for-loop?笔记: "_" 被合并为 “_”
不包含 ?的标题如 What does "_" in Python mean in a for-loop.html被编译成 What does “_” in Python mean in a for-loop?,里面加了 ?

问题 2:
点击第一个标题 What does “_” in Python mean in a for-loop? ,浏览器跳转到状态 no url was not found on this server
no url was not found on this server when to click the first title
要单击第二个标题 What does “_” in Python mean in a for-loop? ,它工作正常。
works fine when to click the second title

请解释我的问题。

最佳答案

Issue 1 实际上不是问题,它是Sphinx 的正常行为:显示的标题不是文件名,而是ResT 文档的顶级标题,在两种情况下都以问号结尾。
表的内容> .. toctree::> this page该国部分:

Document titles in the toctree will be automatically read from the title of the referenced document.



如果您需要被说服,只需更改任何文档的标题,重建 HTML 并查看。

Issue 2 是由于链接的 href 中存在非 urlencoded 问号引起的。在 url 中,问号表示 query string 的开始。

那是试图访问 What does "_" in Python mean in a for-loop?.html ,意味着请求 What does "_" in Python mean in a for-loop HTML 文档,给它一个 .html 参数。显然,请求的文档不存在,因此找不到。

在浏览器的地址栏中,您可以将问号替换为其 urlencoded 形式 %3F ,然后观察它是否有效。

我没有找到任何方法让 sphinx 自动对链接的 href ( it actually is considered a bug ) 或任何明确表达 ResT 文档命名限制的文档中的文档名称进行 urlencode。

但我从经验中知道 用标点符号命名文件通常是 问题的根源。 我建议你用较少的外来字符重命名你的文档 (slugify 它们)。将您的 ResT 文档命名为 underscore_in_for_loop.rst 而不是 What does "_" in Python mean in a for-loop?.rst 将为您节省大量时间和麻烦。

请记住,这应该不是问题,因为正如我们在第一期中看到的那样,文档名称仅用于 URL。

关于python - 为什么从包含问号的 rst 文件转换的 html 文件在单击目录时无法在浏览器上显示?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59433136/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com