如何链接到:下载:Sphinx中的网络驱动器上的文件?

w1r*_*res 6 restructuredtext hyperlink python-sphinx

我正在为我们的一个硬件产品制作一些项目文档.该文档供内部使用,它位于网络驱动器上:

\\ourserver\projects\project1-doc

我们目前进行版本控制的方式,我们有一些像这样的文件夹:

\\ourserver\projects\project1-A
\\ourserver\projects\project1-B
\\ourserver\projects\project1-C
Run Code Online (Sandbox Code Playgroud)

我希望能够:download:从文档链接到其中一个文件夹中的pdf.有什么方法可以做到文件的绝对路径吗?我尝试了很多东西,例如:

:download:`schematic <file://///ourserver/projects/project1-C/schematic.pdf>`
:download:`schematic //ourserver/projects/project1-C/schematic.pdf>`
Run Code Online (Sandbox Code Playgroud)

但我无法与Sphinx合作.我该如何链接到这个文件?

Col*_*ole 1

该文档托管在网络上,但是您是否通过网络上的 sphinx 构建它?当使用 :download: 指令时,sphinx 将文件复制到 _downloads 下的 _build/html 目录并链接到那里。因此,如果您要在本地构建 sphinx 文档,并且在构建过程中找不到要复制和链接的正确文件,那么它不会创建链接,如果路径错误也是如此。

无论如何,由于您要链接到版本控制下的文件,因此您可能需要使用 .. raw:: 指令创建绝对路径,以便始终链接到最新版本。

.. raw:: html

   <p><a class="reference download internal" href="/ourserver/projects/project1-C/schematic.pdf">
   <tt class="xref download docutils literal">
   Project 1-C Schematic
   </tt></a><p>
Run Code Online (Sandbox Code Playgroud)

如果您想链接到 pdf 并通过 sphinx 使用创建的 pdf 启动它。您可以使用 .. raw:: Latex 指令。

.. raw:: latex

   \href{run:/ourserver/projects/project1-C/schematic.pdf}{Project 1-C Schematic}
Run Code Online (Sandbox Code Playgroud)

还可以构建自定义指令以使其更加流畅。