我在Azure的预留网站上托管静态网站(它是PaaS,无法访问OS / IIS)。我正在尝试添加一些.mp4视频,但是当我点击我获得的链接时
The resource you are looking for has been removed, had its name changed,
or is temporarily unavailable.
请参阅示例here。 如果我右键单击链接并尝试保存文件我得到 - 失败 - 没有文件。
我正在使用付费实例,所以不要认为这是资源问题。视频文件小于2MB。他们从未工作过。该网站非常静态。
有谁知道如何解决这个问题? 我应该以其他方式托管MP4文件吗?
谢谢,
答案 0 :(得分:59)
链接的SO答案在概念上对我有用,但它没有表明适当的fileExtension。我的配置必须改为表示以下内容。 (注意,对于任何有这个问题的人,默认情况下我的azure网站最初没有web.config,所以我不得不将以下内容添加到文本文件中,另存为web.config,并将FTP添加到我的webroot
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.webServer>
<staticContent>
<remove fileExtension=".mp4" />
<mimeMap fileExtension=".mp4" mimeType="video/mp4" />
<clientCache cacheControlMode="UseMaxAge" cacheControlMaxAge="7.00:00:00" />
</staticContent>
</system.webServer>
</configuration>
答案 1 :(得分:6)
您是否已按照要求确认.MP4的MIME类型已正确配置:
Windows Azure - Serve unknown (mp4) MIME types in Windows Azure IIS storage
答案 2 :(得分:1)
目前只有一种方法可以做到这一点,我已与Azure团队确认。
将web.config文件添加到应用程序wwwroot\web.config
的根目录中,其中包含以下内容
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.webServer>
<staticContent>
<mimeMap fileExtension=".mp4" mimeType="application/mp4" />
</staticContent>
</system.webServer>
</configuration>
答案 3 :(得分:0)
我遇到了同样的问题。视频在localhost
上播放,但在部署到Azure时未播放。
ewitkows' answer是正确的。 Web服务器未返回正确的MIME类型,因此您需要将它们添加到web.config的<system.webServer>
元素中。
但是,我想再添加一个细节。当您添加ewitkows' answer提及的代码时,您的网站可能会停止在localhost
上显示视频,即使它可以在Azure上正确显示。如果右键单击<video>
HTML元素,然后从上下文菜单中单击查看视频菜单命令,它将为您提供 500 HTTP状态代码,并显示IIS自定义错误页面,如下所示:
观察配置错误,配置文件和配置源部分。他们告诉您IIS已经具有您在web.config中添加的元素的MIME类型映射。
<staticContent>
<remove fileExtension=".ogv"/>
<remove fileExtension=".webm"/>
<remove fileExtension=".mp4"/>
<mimeMap fileExtension=".ogv" mimeType="video/ogg"/>
<mimeMap fileExtension=".webm" mimeType="video/webm"/>
<mimeMap fileExtension=".mp4" mimeType="video/mp4"/>
</staticContent>
因此,您还需要先删除IIS。然后它将同时在localhost
和Azure上运行。
答案 4 :(得分:0)
如果您使用的是Azure应用服务,请参见How to add Mime Types in ASP.NET Core的答案 我尝试了web.config路由,但没有用,但是编辑Startup.cs可以了
答案 5 :(得分:-1)
Azure Web Apps不支持某些类型的媒体文件。您可以使用Azure媒体服务上传它,然后从您的代码中引用媒体文件。