Link to Flask static files with url_for

You have by default the static endpoint for static files. Also Flask application has the following arguments:

static_url_path: can be used to specify a different path for the static files on the web. Defaults to the name of the static_folder folder.

static_folder: the folder with static files that should be served at static_url_path. Defaults to the ‘static’ folder in the root path of the application.

It means that the filename argument will take a relative path to your file in static_folder and convert it to a relative path combined with static_url_default:

url_for('static', filename="path/to/file")

will convert the file path from static_folder/path/to/file to the url path static_url_default/path/to/file.

So if you want to get files from the static/bootstrap folder you use this code:

<link rel="stylesheet" type="text/css" href="https://stackoverflow.com/questions/16351826/{{ url_for("static', filename="bootstrap/bootstrap.min.css") }}">

Which will be converted to (using default settings):

<link rel="stylesheet" type="text/css" href="https://stackoverflow.com/questions/16351826/static/bootstrap/bootstrap.min.css">

Also look at url_for documentation.

Leave a Comment