Я пытаюсь использовать флягу для сканирования всех файлов в определенной папке и создать URL-адрес ссылки на эти файлы автоматически, поэтому сначала я определил приложение маршрут Настой:Переменные в шаблоне jinja2 ввозимые колбу дублируется
homepath = os.getcwd() # the root path of the app
@app.route('/<folder>/')
def showList(folder):
folder_abs_path = homepath + '/static/'+folder
files = os.listdir(folder_abs_path)
return render_template('blog_list.html', files=files, folderName=folder)
И создать шаблон jinja2 как:
{% extends "base.html" %}
{% block body %}
<div id="main-contents">
<ul>
{% for item in files %}
<li><a href="{{ folderName +'/'+ item }}"> {{ item }}</a></li>
{% endfor %}
</ul>
</div>
{% endblock %}
Когда колба работает, я напечатал:
http://localhost:5000/test/
он работает, перечислите все файлы в тестовой папке (которая является «file1.md» и «file2.md»), но она не перестает ссылаться на соответствующие ссылки для файлов, когда я щелкнул файл file.m.md в локальном веб-странице, то он относится к URL, как:
http://localhost:5000/test/test/file1.md
то, что я хочу «http://localhost:5000/test/file1.md», так почему два названия папки «тест»?
Вы генерируете относительный путь, вы должны сделать его абсолютным. см. сгенерированный источник. –
Поскольку URL-адрес будет отправлен на сервер в качестве сообщения GET, поэтому он не может быть абсолютным путем или у вас есть какие-либо решения по этому поводу, в настоящее время я вручную добавляю имя папки в шаблон. – cjhang