javascript - 在网站中显示视频,在 Visual Studio 调试器中工作,但在发布版本中不起作用

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

最佳答案

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

相关文章:

javascript - jquery 无法设置变量

javascript - 将 JSON 对象数组动态放入表中的有效方法是什么?

asp.net-mvc - 在 AppHarbor 中托管多线程 mvc 应用程序

android - 移动应用程序的后端服务器

javascript - 通过javascript单击时更改图像

javascript - const 关键字和方法声明的问题

javascript - 等待所有异步函数在 jQuery 中完成

c# - Controller 参数不会变为空

c# - asp.net web api - 如何验证用户身份

java - Java 中的点对点实时流媒体?