【问题标题】:Resource in Content folder not found using ASP.NET MVC使用 ASP.NET MVC 找不到 Content 文件夹中的资源
【发布时间】:2017-06-05 22:14:03
【问题描述】:

我正在尝试加载存储在我的解决方案中的trackCues.vtt 文件,并且我正在尝试通过以下方式在我的视图中加载此资源:

<video style="margin-top:30px;margin-bottom:30px" width="800" height="600" controls>
    <source src='@Url.Content("~/Content/AudioAssets/speechSample.mp4")' type="video/mp4">
    <track src='@Url.Content("~/Content/AudioAssets/trackCues.vtt")' kind="metadata" default>
</video>

但是,当页面加载时,我收到以下错误:

加载资源失败:服务器响应状态为 404 (未找到)http://localhost:33862/Content/AudioAssets\trackCues.vtt

我不确定为什么这会失败,因为路径看起来正确(不过我一定是错的)

注意:我从同一个目录加载我的视频并使用相同的语法,所以我不确定为什么 .vtt 文件不会加载

【问题讨论】:

    标签: c# html asp.net asp.net-mvc


    【解决方案1】:

    在 ApplicationHost.config 中指定 Mime-Type

    ApplicationHost.configstaticContent部分添加如下配置

    <mimeMap fileExtension=".vtt" mimeType="text/vtt" />
    

    配置文件位于:

    %HOMEPATH%\Documents\IISExpress\config\ApplicationHost.config
    

    在 Web.config 中指定 Mime-Type(适用于 OP)

    此配置允许在无需更改任何服务器设置的情况下部署项目。

    <system.webServer>
        <staticContent>
            <remove fileExtension=".vtt " />
            <mimeMap fileExtension=".vtt " mimeType="text/vtt" />
        </staticContent>
    </system.webServer>
    

    【讨论】:

    • &lt;user&gt; 占位符替换为您登录时使用的用户名。一个捷径是看这里%HOMEPATH%\Documents\IISExpress\config
    • 我找到了——我的文档文件夹存储在网络上的另一台机器上。添加 mimeMap 后仍然无法正常工作。同样的错误
    • 也许尝试重新启动 IIS Express?
    • 根据您的回答,我在这里找到了解决方案:stackoverflow.com/questions/9021946/… 您让我走上了正确的道路,所以我很乐意接受您的回答 - 请更新以也包含此方法(我相信会更好,因为它可以在机器之间移植)
    • 完成 :) 我同意在Web.config 中指定这一点可能会省去一些麻烦。但是,在服务器范围的配置中指定这些内容的好处之一是所有站点都将被更新。无论如何,很高兴这对你有用。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-10-17
    • 2012-03-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多