flask 图片不在static文件夹怎么显示在网页上
时间: 2024-11-09 17:20:42 浏览: 16
STM32F429从内存显示自定义1024*600图片案例
5星 · 资源好评率100%
如果你的图片文件位于Flask项目之外,比如在项目的某个其他子目录下,或者服务器的另一个位置,你需要在发送图片时提供完整的URL。首先,确定好图片的完整路径,然后在HTML模板中像这样引用:
```html
<img src="{{ url_for('your_blueprint_name', img_path='/relative/path/to/your/image.jpg') }}" alt="Your Image Description">
```
在这里,`your_blueprint_name`是你蓝图的名字(如果使用了蓝图),`img_path`是图片相对于网站根目录的路径。在视图函数中,你需要解析这个路径并将其转换成实际可用的URL返回给前端:
```python
from flask import Blueprint, current_app, request
blueprint = Blueprint('your_blueprint_name', __name__)
@blueprint.route('/image/<path:path>')
def serve_image(path):
image_url = f"{current_app.config['SERVER_NAME']}{request.url_root}{path}"
return redirect(image_url, code=301) # 使用301永久重定向
```
这会将用户的请求转发到正确的图片地址。请注意,`current_app.config['SERVER_NAME']`应获取当前服务器名称,以确保URL的完整性和跨域访问正确。
阅读全文