我有一个包含以下 HTML 的网络表单:
<body>
<form id="form1" runat="server">
<div>
<video style="width: 100%;" controls autoplay>
<source src="<%= this.MP4 %>" type="video/mp4">
<source src="<%= this.OGV %>" type="video/ogg">
<source src="<%= this.WEBM %>" type="video/webm">
Your browser does not support the video tag.
</video>
</div>
</form>
</body>
此页面在 fancybox 窗口中打开,相应的视频文件通过 url 参数 (video.aspx?video=filename
) 给出,文件路径在代码隐藏。
当我在本地使用 Visual Studio 2012 尝试时,一切正常。另外,如果我像这样直接通过 URL 调用文件:http://localhost:52916/_video/filename.webm
它也能正常工作。
代码如下:
protected void Page_PreRender(object sender, EventArgs e)
{
MP4 += Request.QueryString["video"] + ".mp4";
OGV += Request.QueryString["video"] + ".ogv";
WEBM += Request.QueryString["video"] + ".webm";
}
但是在实时服务器上找不到视频 (404),如果直接调用也是如此,当我检查 Chrome 控制台时,我可以看到对视频文件的所有 GET 请求都被取消了。
而且页面是在fancybox窗口打开还是我直接打开都没有区别,还是不行。我还尝试使用已填充文件的路径而不是按语法进行。
我发现有几个人似乎有同样的问题,但他们的解决方案都没有用。
最佳答案
如果它在本地工作,但不是实时的,问题很可能是实时网络服务器没有配置为提供这些文件类型。尝试将此添加到 system.webServer
条目下的 web.config 中:
<staticContent>
<mimeMap fileExtension=".ogg" mimeType="application/ogg" />
<mimeMap fileExtension=".oga" mimeType="audio/ogg" />
<mimeMap fileExtension=".ogv" mimeType="video/ogg" />
<mimeMap fileExtension=".webm" mimeType="video/webm" />
<mimeMap fileExtension=".mp4" mimeType="video/mp4" />
</staticContent>
在某些版本的 IIS 中,未知文件扩展名(如 ogg
、webm
)将导致 404,这就是您必须定义 mime 类型的原因。
关于c# - 视频文件的 GET 请求已取消。找不到视频,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21528655/