Asp.net mvc ASP.NET MVC不提供MP3文件

Asp.net mvc ASP.NET MVC不提供MP3文件,asp.net-mvc,mp3,html5-audio,Asp.net Mvc,Mp3,Html5 Audio,我试图在网站上播放mp3文件作为背景音乐。为了提供服务,我在内容中创建了一个名为mp3的文件夹,并将该文件添加到其中。我使用的html看起来像 <audio loop="loop" autoplay="autoplay"> <source src="/mp3/myfile.mp3" type="audio/mp3" /> </audio> 浏览器返回404和yes。。我验证了文件名是否正确,甚至将其重命名为“a.mp3”,以确保没有发生任何有趣的事情

我试图在网站上播放mp3文件作为背景音乐。为了提供服务,我在内容中创建了一个名为mp3的文件夹,并将该文件添加到其中。我使用的html看起来像

<audio loop="loop" autoplay="autoplay">
  <source src="/mp3/myfile.mp3" type="audio/mp3" />
</audio>

浏览器返回404和yes。。我验证了文件名是否正确,甚至将其重命名为“a.mp3”,以确保没有发生任何有趣的事情

如果我选择在新选项卡中打开,我也会得到404。(即mydomain.com/mp3/a.mp3给出了404)

作为一个实验,我在mp3文件夹中放置了一个js文件。。(mydomain,com/mp3/test.js),它被提供到一个新的选项卡中,没有问题。还将一个png文件放在文件夹(mydomain.com/mp3/pic.png)中,并没有问题。将其复制到另一个正在使用的文件夹(如js或css)会得到相同的结果。我可以在文件夹中提供js或css文件,但如果我试图检索mp3文件,会得到404

FF和Chrome的结果相同,因此它不是特定于浏览器的

似乎有什么特别的原因导致它拒绝提供mp3文件


顺便说一句,我还打开了windows桌面上的文件,它们在WMP中播放时没有问题,因此文件没有问题。

首先,您应该使用浏览器的开发人员工具(查看源代码)检查路径,以确保正确呈现文件路径。您的问题似乎是由于错误的文件路径引起的

其次,不要手动创建
src
路径,而是使用
@Url.Content()
helper和MP3文件的相对虚拟路径,如下面的示例所示,确保使用了正确的路径:

<audio loop="loop" autoplay="autoplay">
  <source src="@Url.Content("~/mp3/myfile.mp3")" type="audio/mp3" />
</audio>

我终于解决了这个问题。我意识到,尽管MVC处理程序有一个静态文件映射,但任何请求都会通过ASP.NET MVC路由器


事实证明,我定义了一个自定义路由,出于安全原因,它锁定了它将提供的文件类型,而mp3不是其中之一

谢谢你的建议,但我相信我上面的帖子已经排除了大部分的可能性。我甚至尝试直接从地址栏中提取一个mp3文件,但如果我替换同一目录中的另一种类型的文件(例如js或css文件),就可以得到一个404文件,因此没有目录权限问题。我注意到服务器没有与mp3相关的默认应用程序,但我不认为这是一个问题。谢谢你的建议。事实上,我可以从同一个服务器直接提供非mp3文件,这似乎排除了IO权限。另外,为了暂时解决这个问题,我将它们复制到同一台机器上的一个单独的IIS网站上,该网站直接为文件提供服务,而且它为它们提供服务没有问题,因此看起来不存在IIS问题。似乎与从ASP.NET提供mp3文件有关。正如我提到的,我甚至尝试将文件复制到我的js和css文件夹中。js和css文件已成功送达,但同一文件夹中的mp3文件未送达。
<staticContent>
     <mimeMap fileExtension=".mp3" mimeType="audio/mp3" />
</staticContent>