【问题标题】:asp.net, how to serve static filesasp.net,如何提供静态文件
【发布时间】:2012-01-11 19:04:32
【问题描述】:

我是 ASP.net 的新手,只是找不到任何关于如何在 ASP.NET 上提供静态文件的文档。我指的是images/javascripts/jars/xls等文件……

为了更清楚一点,我对向用户提供文件不感兴趣,而是对我的 javascript、java 小程序等...所以我正在寻找一种处理带有参数的特定 GET 请求的方法将返回具有适当 MIME 类型的文件。

您对不同的方法有什么建议吗? 非常感谢!

【问题讨论】:

    标签: asp.net


    【解决方案1】:

    使用绝对路径或根相对路径以避免多级页面中的混淆

    在 ASP.NET 中,您可以使用前导 ~ 来为大多数服务器端控件生成相对于当前站点根目录的 url,例如:<img src="~/image.jpg" runat="server">

    您还可以使用ResolveUrl 方法(和其他类似方法)来扩展此类路径,而无需使用服务器端控件。

    如果您需要在 JS 代码中使用这些路径,您可以执行以下操作:

    var JQueryPath=<%= Url.Content ("~/Img/myImage.jpg") %>"
    

    更多信息:

    http://msdn.microsoft.com/en-us/library/system.web.ui.control.resolveurl.aspx

    Best practices, How to specify relative path for css,javascript and images files?

    【讨论】:

      【解决方案2】:

      这并不是真正的 ASP .NET 问题,而更多的是 IIS 的工作。

      不要误以为您需要使用服务器控件来完成所有操作。如果您只是希望人们能够下载这些文件,一个简单的&lt;a href='/yourstaticcontent'&gt;link&lt;/a&gt; 就可以了,而且实际上比使用服务器端控件更可取。

      编辑 我同意马西米利亚诺关于从根表达路径的观点。

      【讨论】:

      • 我没有说清楚我想,我更新了这个问题。我对为用户提供文件不感兴趣。
      【解决方案3】:

      如果您从控制面板安装了 IIS/ASP.NET,您可能没有打开静态内容。

      您会在控制面板中找到一个复选框,打开或关闭 Windows 功能:万维网服务/通用 HTTP 功能/静态内容

      【讨论】:

        最近更新 更多