简体   繁体   English

使用 Flask 为 static CSS 和 ZA81259CEF8E959C6297DF1D456E5D 视频文件提供服务

[英]Use Flask to serve both static CSS and static video files

I set up a Flask server to render raw MP4 videos.我设置了一个 Flask 服务器来渲染原始 MP4 视频。 I can play the videos stored outside my Flask project folder by setting app = Flask(__name__, static_folder=<video_folder>) .我可以通过设置app = Flask(__name__, static_folder=<video_folder>)播放存储在 Flask 项目文件夹之外的视频。 But this will cause Flask to fail to find the CSS files stored inside the project folder for the website.但这会导致 Flask 无法找到存储在网站项目文件夹中的 CSS 文件。 Any solution to solve both?有什么办法可以解决这两个问题? 'static_folder' cannot be a list. “static_folder”不能是列表。

Your video folder should be inside the 'static' folder, and you should have your URLs to videos point to 'static/video/file.mov' etc. You can use url_for to make sure the hrefs are constructed properly.您的视频文件夹应该在“静态”文件夹内,并且您应该让视频的 URL 指向“静态/视频/文件.mov”等。您可以使用url_for来确保正确构建 href。 See https://flask.palletsprojects.com/en/1.1.x/tutorial/static/ and https://flask.palletsprojects.com/en/1.1.x/quickstart/#url-building请参阅https://flask.palletsprojects.com/en/1.1.x/tutorial/static/https://flask.palletsprojects.com/en/1.1.x/quickstart/#url-building

If you cannot move the files for some reason, you can use send_from_directory in your route to do what you're describing:如果由于某种原因无法移动文件,则可以在路由中使用send_from_directory来执行您所描述的操作:

app.route('/uploads/<path:filename>')
def download_file(filename):
    return send_from_directory(app.config['UPLOAD_FOLDER'],
                               filename, as_attachment=True)

See https://flask.palletsprojects.com/en/1.1.x/api/#flask.send_from_directory请参阅https://flask.palletsprojects.com/en/1.1.x/api/#flask.send_from_directory

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM