首页 > 解决方案 > 我的 mp4 不会像以前那样显示在烧瓶中

问题描述

所以我刚开始使用烧瓶,并进行了不同的练习。昨天我成功地在我的烧瓶网页上部署了一个视频,但是今天当我运行相同的代码时,我得到了一个黑色窗口,应该播放视频(与图像相关)。

(图片相关)

这是我的烧瓶代码

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

标签: htmlpython-3.xflask

解决方案


<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它应该在什么时候example.com/music/static/sample.mp4


推荐阅读