在网站中显示视频,在Visual Studio调试器中工作但不在发行版

时间:2017-12-14 15:21:31

标签: javascript asp.net-mvc web

我正在制作一个必须展示许多视频的网站。我用这段代码做到了这一点:

<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">

1 个答案:

答案 0 :(得分:1)

"src="C:\inetpub\wwwroot\correctPath\myVideo.mp4"是你的问题。由于安全限制,您无法访问最终用户本地计算机上的文件(即使您可以,您如何知道路径,以及如何假设文件存在?)。

此值应为指向视频可在线访问位置的http网址,  例如src="https://www.example.com/videos/myVideo.mp4"(大概是在您的服务器上?)。

此原则适用于所有内容,而不仅仅是视频(例如,在网页中,您必须始终通过URL引用资源,而不是通过磁盘路径引用资源)。

您可能还需要在IIS中配置mime类型/文件扩展名设置,以确保服务器支持您所服务的所有文件类型。