python - 如何从 Flask 中的 url_for() 检查静态文件是否存在?
问题描述
有没有办法可以检查静态文件url_for()
是否真的存在?因为我想检查第一个文件是否不存在,所以我想在我的 html 文件中用另一个文件替换它,就像这样:
{% 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 %}
我已经尝试过上面的操作,也尝试过or
像这样的操作符:
<img src="{{IconPng or IconIco or Default}}" />
但是,它不起作用。任何提示如何url_for()
在 Flask 中进行此检查?
谢谢
解决方案
在我看来,javascript 比你的后端更重要。您可以使用这样的功能检查图像是否存在,然后相应地更改图像 src:
function file_exists(url){
var http = new XMLHttpRequest();
http.open('HEAD', url, false);
http.send();
return http.status != 404;
}
推荐阅读
- python - pytest-mock 补丁上下文管理器在退出时不恢复对象
- php - 无法更改 Laravel 查找 PostgreSQL SSL 证书的位置
- php - 修复“错误 500:页面不工作”错误 PHP
- arrays - 如何比较两个字符串中的字母Ruby
- non-linear-regression - 如何解释 R 中的非线性回归
- powershell - 用于查找/运行计划任务或创建的 Powershell 脚本
- bash - 通过电子邮件替换提交历史
- leaflet - 传单突出显示折线的一部分
- java - Why do I have to enter two inputs for my code to start running?
- php - 如何使用 PHP 减少/压缩短字符串的长度