Ссылка на статические файлы колбы с url для
как вы используете url_for
в колбе ссылаться на файл в папке? Например, у меня есть некоторые статические файлы в static
папка, некоторые из которых могут быть в подпапках, таких как static/bootstrap
.
когда я пытаюсь обслуживать файл из static/bootstrap
, Я получаю сообщение об ошибке.
<link rel=stylesheet type=text/css href="{{ url_for('static/bootstrap', filename='bootstrap.min.css') }}">
Я могу ссылаться на файлы, которые не находятся в подпапках с этим, что работает.
<link rel=stylesheet type=text/css href="{{ url_for('static', filename='bootstrap.min.css') }}">
Как правильно ссылаться на статические файлы с помощью url_for
? Как я могу использовать url_for
создать URL-адреса статических файлов на любом уровне?
2 ответа:
у вас есть по умолчанию
static
точка для статических файлов. ТакжеFlask
приложение имеет следующие аргументы:
static_url_path
: можно использовать для указания другого пути для статических файлов в интернете. По умолчанию используется имя .
static_folder
: папка со статическими файлами, которые должны обслуживаться вstatic_url_path
. По умолчанию используется папка "static" в корневом пути приложения.это означает что за
filename
аргумент будет принимать относительный путь к файлу вstatic_folder
и преобразовать его в относительный путь в сочетании сstatic_url_default
:url_for('static', filename='path/to/file')
преобразует путь к файлу с
static_folder/path/to/file
к пути urlstatic_url_default/path/to/file
.так что если вы хотите получить файлы из вы используете этот код:
<link rel="stylesheet" type="text/css" href="{{ url_for('static', filename='bootstrap/bootstrap.min.css') }}">
который будет преобразован в (используя настройки по умолчанию):
<link rel="stylesheet" type="text/css" href="static/bootstrap/bootstrap.min.css">
также посмотреть
url_for
документация.