这也许可能重复,但没有发现与我完全相同的问题。
我有一个 Ubuntu 服务器,它在 Apache 上运行 Flask,问题是我有下一个路径:
/var/www/someapp/video.mp4. And app.py file inside
/var/www/someapp/app.py and inside of this file I need to access
到此video.mp4
文件。我尝试通过以下方式访问它:
'/var/www/someapp/video.mp4' or '/video.mp4' or './video.mp4'
但什么都没起作用。浏览器显示
404 或 NS_BINDING_ABORTED。
我猜想访问这些文件存在问题,但不确定具体原因。
有什么建议可以解释为什么无法正常工作以及如何修复它?
答案1
Flask 自动提供来自 Static 的文件,因此您应该将视频移动到静态子目录:
/var/www/someapp/static/video.mp4
然后在你的 Flask 中使用 url_for 引用该文件,但首先导入 url_for
from flask import url_for
video_url = url_for('static', filename='video.mp4')
使用 video_url 引用您的文件:
<video src="{{ video_url }}" controls>
Your browser does not support the video tag.
</video>
然后配置 Apache 并添加Alias
指向保存视频的文件夹的 URL 路径:
Alias /videos /var/www/someapp/static
<Directory /var/www/someapp/static>
Require all granted
</Directory>
然后重新启动Apache:
sudo service apache2 restart
确保视频和父目录的文件权限允许读取该文件。您可以使用以下方法执行此操作:
sudo chown -R www-data:www-data /var/www/someapp/static
sudo chmod -R 755 /var/www/someapp/static