文档:使用包含指令时丢失图像(rst、sphinx)

Fio*_*ton 5 restructuredtext image python-sphinx

我正在使用 rst/sphinx 生成文档,并且引用文件中的图像存在问题。

include指令可以很好地引入第一个文件,但我没有获得从包含的文件中引用的图像。

我的结构是这样的:

   /documentation
        /master_doc
            /source
                pointer_file.rst  
                    and this file calls file.rst:
                    include:: ../../doc_a/source/file.rst
        /documents
             /doc_a
                  /source
                       /images
                            picture.jpg
                       file.rst
                             includes a figure ref:
                             .. figure:: images/picture.jpg
Run Code Online (Sandbox Code Playgroud)

当我从目录构建时doc_a,我得到文本+图像。都好。master_doc但是,当我从指令所在的目录构建时include,我只得到文本,构建中缺少图像。

我怎样才能解决这个问题?我不想在两个目录中复制所有图像,这是目前唯一可行的方法。

***编辑:在上面的项目结构中添加了详细信息,因为下面建议的修复尚未起作用。

我尝试了以下所有方法来回应第一条评论中的建议,但都不起作用:

.. figure:: /documentation/documents/doc_a/source/images/picture.jpg
Run Code Online (Sandbox Code Playgroud)

.. figure:: /documents/doc_a/source/images/picture.jpg
Run Code Online (Sandbox Code Playgroud)

.. figure:: /doc_a/source/images/picture.jpg
Run Code Online (Sandbox Code Playgroud)

还有其他想法吗?

Ste*_*rcy 5

尝试将图像文件路径从相对路径更改为绝对路径。

.. figure:: /doc_a/source/images/picture.jpg
Run Code Online (Sandbox Code Playgroud)

来自reStructuredText Primer,图像

在 Sphinx 中使用时,给定的文件名(此处gnu.png)必须是相对于源文件的,或者是绝对的,这意味着它们相对于顶级源目录。例如,文件sketch/spam.rst可以将图像引用images/spam.png../images/spam.png/images/spam.png


Fio*_*ton 2

我解决了这个问题。感谢史蒂夫·皮尔西提出有用的问题。我必须做两件事:

  1. 将所有图像移动到一个shared_images文件夹,与所有文档项目的相对距离相同,并且

  2. 重新组织我的项目文件夹,使它们成为兄弟姐妹。

现在我的图像参考全部是:../../../shared_images/。有用!