因此,我刚从烧瓶开始,然后进行各种练习。昨天,我成功地将视频部署到了我的Flask网页上,但是今天,当我运行相同的代码时,我得到了一个黑色的窗口,应该在该窗口中播放视频(与图像有关)。
这是我的烧瓶代码
from flask import Flask, render_template
app = Flask(__name__)
@app.route('/')
def index():
return render_template('video.html')
if __name__ == "__main__":
app.run(host="localhost", port=8000, debug=True)
还有我的HTML代码
<html>
<head>
<meta name="viewport" content="width=device-width">
</head>
<body>
<video controls="" autoplay="" name="media">
<source src="file:///C:/Users/(username)/Desktop/Code/Flask/templates/sample.mp4" type="video/mp4">
</video>
</body>
</html>
我的文件结构是
Flask\
-app.py (flask code)
\templates\
-video.html (html code)
-sample.mp4
链接的视频可以正常工作,例如 https://s3.amazonaws.com/codecademy-content/projects/make-a-website/lesson-1/ollie.mp4
答案 0 :(得分:1)
<source src="file:///C:/Users/(username)/Desktop/Code/Flask/templates/sample.mp4" type="video/mp4">
问题是该源标记将在用户的浏览器中呈现,并尝试将c:\Users
路径解析为他们自己的计算机。
您可能希望通过将templates/sample.mp4
移至static/sample.mp4
(如有需要,创建static
目录)来解决此问题。
然后在模板中:
<video controls="" autoplay="" name="media">
<source src="{{ url_for('static', filename='sample.mp4') }}" type="video/mp4">
</video>
使用url_for
方法可确保始终生成正确的链接,而不管应用程序最终托管于哪个URL。
如果您改为编写src='/static/sample.mp4'
,它将在开发中工作,但是如果您的应用程序后来托管在https://example.com/music/
上,则此链接应指向example.com/static/sample.mp4
,当它应为{{ 1}}。
答案 1 :(得分:0)
尝试使用relative address
而不是absolute address
<video controls="" autoplay="" name="media">
<source src="./sample.mp4" type="video/mp4">
</video>