如何在ASP.NET MVC3中通过HTTPS提供静态文件(在〜/ Content中)

时间:2013-09-13 21:40:45

标签: c# asp.net-mvc asp.net-mvc-3 iis iis-7

我有一个ASP.NET MVC3应用程序,我刚刚添加了一个区域。区域内的链接(图像,JavaScript文件,CSS等)默认为https。但是,MVC似乎不通过https在~/Content目录中提供静态内容。

我仔细阅读了互联网文档,但我没有找到有关MVC如何以不同方式处理~/Content目录,或者如何通过https提供静态文件的信息。

我希望它会像Web.config条目一样简单,上面写着“允许静态文件通过https提供”,但我没有发现这样的事情。

我提出的唯一选择是编写一个自定义控制器来提供我的静态内容,但这似乎非常错误。我错过了什么?

更新:回答以下Joe的问题,视图本身正在通过https提供。对于静态内容,如JavaScript文件,我使用的是没有协议或域的绝对URL。例如:

<script "/Areas/Admin/Content/js/jquery.js"></script>

由于页面的协议是https,浏览器正在请求https://localhost:5300/Areas/Admin/Content/js/jquery.js(自然)。使协议http和该文件正确提供:使其成为https,我收到错误。

更新:我愚蠢地没有仔细阅读错误。那里有更多的细节,但它仍然让我感到困惑。我尝试访问https://localhost:5300/Areas/Admin/Content/js/jquery.js时收到的错误是:

Parser Error Message: An error occurred loading a configuration file: 
Failed to start monitoring changes to
'C:\Users\ethan\Documents\gitwork\SampleWebSite\admin\content\web.config'
because access is denied.

为什么要在该目录中查找Web.config文件?

1 个答案:

答案 0 :(得分:0)

一个简单的解决方案是你不能使用&#34;〜&#34;