我认为,在尝试使其工作时,将此代码减少到最小值: 蟒蛇:
#!/usr/bin/env python
from functools import wraps
from flask import Flask, render_template, session, request, redirect, url_for
from flask_socketio import SocketIO, emit, join_room, leave_room, \
close_room, rooms, disconnect
async_mode = None
app = Flask(__name__)
app.config['SECRET_KEY'] = 'secret!'
socketio = SocketIO(app, async_mode=async_mode)
@app.route('/')
def index():
return render_template('index_test.html')
if __name__ == '__main__':
socketio.run(app, debug=True)
html:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<img src="{{ url_for('index') }}bulboff.gif"/>
<p>"{{ url_for('index') }}" <p>
</body>
</html>
图像位于静态文件夹中。
它给出了这个错误:
&#34; GET /bulboff.gif HTTP / 1.1&#34; 404
访问页面时。
我尝试了几项设置Flask默认路径,没有url_for等,但仍然没有图片。
我错过了什么?
答案 0 :(得分:1)
要生成静态文件的URL,请使用特殊的
static
端点 名:url_for('static', filename='style.css')
该文件必须作为
static/style.css
存储在文件系统中。
在您的情况下,请使用<img src="{{ url_for('static', filename='bulboff.gif') }}">
答案 1 :(得分:0)
如果您将图像放在静态文件夹中,您应该使用以下内容:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<img src="{{ url_for('index') }}static/bulboff.gif"/>
<p>"{{ url_for('index') }}" <p>
</body>
</html>
或者,您可以更改应用程序的代码并添加以下内容:
@app.route('/bulboff.gif')
def bulboff():
return open('static/bulboff.gif').read()
答案 2 :(得分:0)
<img src="{{url_for('static', filename='bulboff.gif')}}" />
试试吧。您的文件名可以是静态文件夹中的路径。因此,如果您有filename = \some\path\img.png
,它会在static\some\ath\img