我正在开发一个必须显示许多视频的网站。我使用以下代码执行此操作:
<video id="myVideo" width="432" height="240" controls autoplay loop>
<source src=@Model[1].VideoPath type="video/mp4">
Your browser does not support the video tag.
</video>
@Model[1].VideoPath 是视频的路径(使用 ASP.NET-MVC)。在调试过程中,它工作正常,具有相对路径(例如“../../videosFolder/videoName.mp4”)。
现在发布它不再起作用了。如果我的相对路径错误,我会切换到绝对路径(“C:\inetpub\wwwroot...\videoName.mp4”)。
我已确保视频存在,网站本身正在打印路径并且它是正确的。应用程序池以具有完全权限的用户身份运行,并且从 inetpub 开始的所有文件夹也可供任何人读取...那么为什么现在不起作用?
更新: 我被要求上传“实时 HTML”。我不确定我这样做是否正确,但检查我得到的元素(同样,路径是正确的):
<video id="parentVideo" width="432" height="240" controls="" autoplay="" loop=""> <source src="C:\inetpub\wwwroot\correctPath\myVideo.mp4" type="video/mp4">
最佳答案
"src="C:\inetpub\wwwroot\CorrectPath\myVideo.mp4"
是您的问题。由于安全限制,您无法访问最终用户本地计算机上的文件(即使你可以,你怎么知道路径,你怎么能假设该文件存在??)。
该值应该是一个 http URL,指向可以在线访问视频的位置,
例如src="https://www.example.com/videos/myVideo.mp4"
(大概在您的服务器上?)。
这一原则适用于所有事物,而不仅仅是视频(即在网页中,您必须始终通过 URL 引用资源,而不是通过磁盘路径)。
您可能还需要在 IIS 中配置 mime 类型/文件扩展名设置,以确保服务器支持您提供的所有文件类型。
关于javascript - 在网站中显示视频,在 Visual Studio 调试器中工作,但在发布版本中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47816760/