【问题标题】:How do I serve static files from mvc without using content folder?如何在不使用内容文件夹的情况下从 mvc 提供静态文件?
【发布时间】:2012-01-25 01:01:00
【问题描述】:

我希望能够拥有一个允许常规访问的文件夹,如 \content 文件夹,但它包含 ClickOnce 应用程序。我似乎无法使用 Mvc 实现这一点,但我希望在 Mvc 不将其视为控制器操作的情况下访问此文件夹。

我尝试使用routes.Ignore(theUrl),但这似乎没有效果。

【问题讨论】:

  • 是我一个人还是其中一个答案被删除了?

标签: asp.net-mvc


【解决方案1】:

有两种方法可以做到这一点。第一个是你当前要去的地方,就是通过路由来满足它。您应该能够使用以下内容来忽略预期的路线:

routes.IgnoreRoute("...")

但是,从安全的角度来看,这可能不是正确的方法。我建议您定义一个明确的操作来下载您的单击一次 exe。查看this q/a 作为使用FileContentResult 类的示例。

这样做的原因是您可以控制该文件的安全性,而无需打开对其他目录的访问级别。

编辑:如果这是针对整个目录,您仍然可以采用相同的方法。

【讨论】:

  • 您好,问题在于我不确定 ClickOnce 是否需要的不仅仅是访问文件。有一个子文件夹,其下装有大量程序集。不确定我想走这条路……
【解决方案2】:

在 IIS 上将文件夹设置为网站中的虚拟文件夹。然后您可以将代码中的 url 设置为指向服务请求的机器和 Web 服务器上的虚拟文件夹。

【讨论】:

  • 不确定我是否理解,该文件夹位于 Mvc 应用程序的子文件夹中。为什么另一台为请求提供服务的机器会出现这种情况?
  • 如果您有负载平衡的 Web 服务器,或者您将站点移动到新的 Web 服务器。不进行硬编码总是一个好习惯。从虚拟文件夹执行操作时也更容易一些。
猜你喜欢
  • 1970-01-01
  • 2023-03-03
  • 2019-09-19
  • 1970-01-01
  • 2014-06-06
  • 1970-01-01
  • 2023-03-18
  • 1970-01-01
  • 2014-02-03
相关资源
最近更新 更多