我正在用金贾扩展狮身人面像中的布局。使用pathto((,我可以访问build
文件夹中的文件。我也可以使用常规URL访问外部网站(例如https://anywebsite[.]com(。但是,我无法访问位于活动构建文件夹之外的文件。我想在我的项目中指向子文件夹中的第二个ToC。
我的项目由一个source
目录和三个不同的build
目录组成。我的树结构如下:
C:.
| make.bat
| Makefile
+---adminbuild # Build directory for admins
+---build # Build directory for users
+---devbuild # Build directory for developers
+---env
---source
| conf.py
| contents.rst
+---pics
+---_static
---_templates
index.html
layout.html
正如你所看到的,我在_templates文件夹(即index.html(中有一个自定义登录页,还有一个扩展我默认布局的Jinja模板(layout.html(。
当我这样做时,我可以访问我的ToC而没有任何问题:
<a href="{{ pathto('contents') }}" class="btn btn-primary show-white"> Bla Bla Bla →</a>>
但是,如果我使用以下内容,我将无法访问位于第二个子文件夹中的外部ToC:
<a href="{{ pathto('../adminbuild/contents.html') }}" class="btn btn-primary show-white">Bla Bla Bla</a>
如何使用Jinja访问默认构建文件夹之外的文件?我在这里做错了什么?
我自己设法解决了这个问题。:-(
对于遇到类似问题的人,我做了以下几点:
我创建了第二个项目,并将第二个子文件夹移到新项目中。
由于我在本地进行测试,所以我运行本地主机如下:
- 第一个项目:
http://localhost:port-number-1
- 第二个项目:
http://localhost:port-number-2
然后,在第一个项目中的Jinja模板中,我简单地放了这个:
<a href="http://localhost:port-number-2/contents.html" class="btn btn-primary show-white">Bla Bla Bla →</a>
就是这样!现在一切都按预期进行。
别忘了在第二个项目中调整你的Jinja模板,以相应地反映变化。
请注意,您不必创建第二个项目来实现此解决方案。尽管如此,对于我的特定场景,我正在一个更适合我的需求的结构中创建单独的项目。