asp.net-mvc - ASP.NET MVC 不提供 MP3 文件
问题描述
我正在尝试在网站上播放 mp3 文件作为背景音乐。为了提供它,我在 Content 中创建了一个名为 mp3 的文件夹并将文件添加到其中。我使用的 html 看起来像
<audio loop="loop" autoplay="autoplay">
<source src="/mp3/myfile.mp3" type="audio/mp3" />
</audio>
浏览器返回 404 是的。我验证了文件的名称是正确的,甚至将其重命名为“a.mp3”以确保那里没有发生任何有趣的事情。
如果我选择在新选项卡中打开,我也会得到 404。(即 mydomain.com/mp3/a.mp3 给出 404)
作为一个实验,我在 mp3 文件夹中放置了一个 js 文件.. (mydomain,com/mp3/test.js) 并将它提供到一个新选项卡中没有问题。还在文件夹 (mydomain.com/mp3/pic.png) 中放置了一个 png 文件,并且没有问题。将其复制到另一个正在使用的文件夹(如 js 或 css)会得到相同的结果。我可以提供文件夹中的 js 或 css 文件,但如果我尝试检索 mp3 文件,则会得到 404。
FF 和 Chrome 的结果相同,因此它不是特定于浏览器的。
似乎有什么特别导致它拒绝提供 mp3 文件。
顺便说一句,我还在 Windows 桌面上打开了文件,它们在 WMP 中播放没有问题,所以文件没有问题。
解决方案
我终于弄清楚了问题所在。我意识到尽管 MVC 处理程序有一个静态文件映射,但任何请求仍将通过 ASP.NET MVC 路由器。
原来我定义了一个自定义路由,出于安全原因,它锁定了它将提供的文件类型,而 mp3 不是其中之一。
推荐阅读
- python - PyCharm中跨文件的循环类型注释误报?
- java - Jsonpath:有没有办法使用 JsonPath 访问任何一个可用的子节点
- python - 需要 Python 的 Pandas 的 DataFram.Replace 帮助
- asp.net-core-mvc - 为什么在脚手架代码中发布编辑操作时,会根据模型/隐藏输入中的 ID 检查 URL 中的 ID?
- ffmpeg - GStreamer H264 流到 HTML5 网页
- javascript - React Native 在抽屉导航屏幕上显示标题和后退按钮
- autohotkey - AutohotKey 控件 + 逗号在浏览器的新窗口中打开选项卡
- r - 如何校准具有点(不是概率)作为变量的模型?
- android - 如何创建在背景中有圆圈和在顶部有图像的布局?
- android - 使用 flutter_bluetooth_serial 在两个(或更多)Flutter 应用程序之间进行通信