How can I check if static file exists or not from url_for() in Flask?


Is there is way I can check the static file from url_for() is really exist or not? Because I would like to check that if the first file does not exists, I would like to replace it with another file just like this in my html file:

{% set IconPng = url_for('static', filename="images/favo.png") %}
{% set IconIco = url_for('static', filename="images/favo.ico") %}
{% set Default = url_for('static', filename="images/default.ico") %}

{% if IconPng %}
    <img src="{{IconPng}}" />
{% elif IconIco %}
    <img src="{{IconIco}}" />
{% else %}
    <img src="{{Default}}" />
{% endif %}

I have tried with above and also with or operator like:

<img src="{{IconPng or IconIco or Default}}" />

However, it does not work. Any tip how can I do this check for url_for() in Flask?



In my opinion it is rather task for javascript than your backend.
You can check if image exist using function like this one, and then change image src accordingly:

function file_exists(url){
    var http = new XMLHttpRequest();'HEAD', url, false);

    return http.status != 404;

Answered By – Adrian StÄ™pniak

This Answer collected from stackoverflow, is licensed under cc by-sa 2.5 , cc by-sa 3.0 and cc by-sa 4.0

Leave a Reply

(*) Required, Your email will not be published