New*_*ing 5 python python-sphinx read-the-docs
我正在尝试使用 Sphinx 结合阅读文档主题编写文档,但搜索功能似乎已损坏。
\n\n我在 Windows 10 上运行 Python 3.7 以及最新版本的 Sphinx 和 Read the Docs 主题(均随 一起安装pip install)。在构建页面并在浏览器中打开 index.html 后(尝试过 Edge 和 Chrome),我无法搜索我的离线文档。搜索页面打开,但仅显示动画Search -> Search . -> Search .. -> Search \xe2\x80\xa6,如果我将主题更改回标准主题,搜索将不会出现任何问题。
由于搜索适用于标准主题,它似乎不是与浏览器相关的问题,也似乎与我没有在本地主机上托管页面这一事实有关。
\n\n如果我查看控制台中的错误,我会看到两个错误
\n\njquery.js:4 Failed to load file:///C:/user/documentation/_build/html/searchindex.js: \nCross origin requests are only supported for protocol \nschemes: http, data, chrome, chrome-extension, https.\nRun Code Online (Sandbox Code Playgroud)\n\n和
\n\nsearchtools.js:144 Uncaught ReferenceError: Stemmer is not defined\nat Object.query (searchtools.js:144)\nat Object.setIndex (searchtools.js:83)\nat searchindex.js:1\nRun Code Online (Sandbox Code Playgroud)\n\n我在网上搜索时找不到任何有用的东西来解决这个问题。还刷新浏览器缓存 ( ),如https://github.com/rtfd/readthedocs.org/issues/4026Ctrl + F5中所述 ) 也不起作用。
有人遇到过同样的问题吗?
\n我通过使用以下解决方案解决了问题(https://github.com/rtfd/sphinx_rtd_theme/pull/672/commits/4b9053cb9e805211f227399d66d82361b3e2bf56)。
感谢 GitHub 用户@tk0miya。
首先,导航到 Python 安装文件夹并找到layout.html里面的./Lib/site-packages/sphinx_rtd_theme/layout.html.
然后替换第 191 - 204 行,其中包含
<script type="text/javascript">
var DOCUMENTATION_OPTIONS = {
URL_ROOT:'{{ url_root }}',
VERSION:'{{ release|e }}',
LANGUAGE:'{{ language }}',
COLLAPSE_INDEX:false,
FILE_SUFFIX:'{{ '' if no_search_suffix else file_suffix }}',
HAS_SOURCE: {{ has_source|lower }},
SOURCELINK_SUFFIX: '{{ sourcelink_suffix }}'
};
</script>
{%- for scriptfile in script_files %}
<script type="text/javascript" src="{{ pathto(scriptfile, 1) }}"></script>
{%- endfor %}
Run Code Online (Sandbox Code Playgroud)
通过以下代码
{% if sphinx_version >= "1.8.0" %}
<script type="text/javascript" id="documentation_options" data-url_root="{{ pathto('', 1) }}" src="{{ pathto('_static/documentation_options.js', 1) }}"></script>
{%- for scriptfile in script_files %}
{{ js_tag(scriptfile) }}
{%- endfor %}
{% else %}
<script type="text/javascript">
var DOCUMENTATION_OPTIONS = {
URL_ROOT:'{{ url_root }}',
VERSION:'{{ release|e }}',
LANGUAGE:'{{ language }}',
COLLAPSE_INDEX:false,
FILE_SUFFIX:'{{ '' if no_search_suffix else file_suffix }}',
HAS_SOURCE: {{ has_source|lower }},
SOURCELINK_SUFFIX: '{{ sourcelink_suffix }}'
};
</script>
{%- for scriptfile in script_files %}
<script type="text/javascript" src="{{ pathto(scriptfile, 1) }}"></script>
{%- endfor %}
{% endif %}
Run Code Online (Sandbox Code Playgroud)
然后在控制台的文档文件夹中运行make clean并运行。make html控制台命令在文档文件夹内执行非常重要。
| 归档时间: |
|
| 查看次数: |
2402 次 |
| 最近记录: |