跳到内容
新问题

对这个项目有疑问吗?注册一个免费的GitHub帐户以打开一个问题,并联系其维护者和社区。

单击“注册GitHub”,表示您同意我们的服务条款隐私声明。我们偶尔会向您发送与帐户相关的电子邮件。

已经在GitHub上了?登录到您的帐户

使用dirhtml阅读文档时忽略位于/404/index.html的自定义404 #215

关闭
哈戈夫克已打开此问题2023年2月2日·6条评论
关闭
受让人

评论

@哈戈夫克
复制链接
贡献者

复制步骤

  1. 使用生成文档目录html具有notfound_urls_prefix=“/”对于部署在根目录下的单个版本站点(即否/英语/最新/)
  2. 访问一些不存在的页面:https://cpython-devguide-1042.org.redthedocs.build/notfound(https://cpython-devguide-1042.org.redthedocs.build/notfound)

实际结果

获取默认迷宫:

形象

预期结果

获取自定义404页面。

更多信息

似乎Read the Docs只支持在404.html(英语)?

https://docs.readthedocs.io/en/stable/hosting.html自定义-非论坛-404页

看起来目录html,此扩展在以下位置构建自定义404页面404/index.html,Read the Docs忽略了哪个?

例如,我可以在以下位置看到自定义404页面(返回200):

https://cpython-evguide-1042.org.readthedocs.build/404/index.html

形象

另请参见

python/devguide#1042

@雪茄
复制链接
成员

感谢您报告此问题。

这似乎是阅读文档本身的一个错误。我们确实有一个检查404/index.html但由于某些原因,它在您的项目中找不到。

https://github.com/readthedocs/readthedocs.org/blob/77781b122cbdc5c70f56d44722ef83ed1abd9ce6/readthedocs/proxito/views/serve.py#L380-L381型

我想这是因为它没有被检测为HTMLDIR。我会稍微研究一下,然后再提出解决方案。。。有希望地😅

@腐殖质 腐殖质自我分配的2023年2月3日
@腐殖质
复制链接
成员

我的猜测是正确的。因为您正在使用build.命令(beta版),我们并不真正知道您的文档版本的“文档类型”是什么。因此,我们将其设置为通用的然后,我链接的那一行被跳过404/index.html未选中文件。

在[1]中:p=Project.objects.get(slug='python-evguide')在[4]中:v=p.versions.get(slug='1042')在[5]中:v.documentation_typeOut[5]:“通用”

我没有检查那个文件总是以避免达到S3 API和所有请求的额外时间。然而,我认为我们可能需要重新考虑这一点,因为我们现在已经支持更多的doctools,而且我不认为我们可以继续做出相同的假设。@埃里克索尔你怎么认为?

腐殖质添加了提交阅读docs/readthedocs.org引用的这个问题 2023年2月3日
由于引入了“build.commands”,我们无法使用`version.documentation_type,因为这些版本将是“通用”的,并且我们不能跳过对此文件位置的检查。请注意,此提交可能会为所有404页面添加和额外调用S3 API,其中我们常规的迷宫将被展示。然而,它从所有数据库中删除了2个databsae调用404请求。我们只能在S3上添加此额外检查`version.documentationtype='generic'`,但这会使代码有点更复杂,我们不会删除这些2db查询。参考:阅读docs/sphinx-notfound-page#215(注释)
@埃里克索尔
复制链接
成员

@腐殖质是的,同意。我们可能需要在这里变得更聪明,但我真的不喜欢为此添加更多检查。

腐殖质添加了提交阅读docs/readthedocs.org引用的这个问题 2023年2月7日
*Proxito:始终选中`404/index.hmtml`由于引入了“build.commands”,我们无法使用`version.documentation_type`,因为这些版本将是“通用”的,并且我们不能跳过对此文件位置的检查。请注意,此提交可能会为所有404页面添加和额外调用S3 API,其中我们常规的迷宫将被展示。然而,它从所有数据库中删除了2个databsae调用404请求。我们只能在S3上添加此额外检查`version.documentationtype='generic'`,但这会使代码有点更复杂,我们不会删除这些2db查询。参考:已阅读未找到的docs/狮身人面像第215页(注释)*文档:在托管文档中提及`404/index.html `*Proxito:从内部获取“版本”`register_page_view`*Proxit:检查机器人程序得分后获取版本*Proxit:只调用“register_page_view”一次*日志:索引文件(`index.html`或`README.html')我对`README.html`感兴趣,因为我们可能不赞成使用该“功能”*测试:添加额外的检查以通过测试*皮棉
@腐殖质
复制链接
成员

这已经在中解决了readthedocs/readthedocs.org#9983它将于今天部署。请确认今天晚些时候或明天的工作正常😄

@腐殖质
复制链接
成员

它现在起作用了!🥳

截图_2023-02-07_17-47-27

@哈戈夫克
复制链接
贡献者 作者

太棒了,谢谢你的快速修复!

免费注册 在GitHub上加入此对话.已经有帐户了吗?登录以发表评论
标签
还没有
项目
已在项目中存档
开发

没有分支或拉请求

3名参与者