【问题标题】:.less files are statically served on IIS6 + .NET 4 MVC3.less 文件在 IIS6 + .NET 4 MVC3 上静态提供
【发布时间】:2011-11-12 00:47:42
【问题描述】:

在 .NET 4 MVC3 项目中,我在 IIS6 上运行本地计算机(不要问为什么)。它在 IIS 中具有正确的通配符映射到 v4 aspnet_isapi.dll,对于 .less 扩展名也是如此。

Web.config 定义了这些 IIS6 和 IIS7 httphandlers。

<system.web>
  <httpHandlers>
    <add type="dotless.Core.LessCssHttpHandler,dotless.Core" validate="false" path="*.less" verb="*" />
  </httpHandlers>
</system.web>

<system.webServer>
  <handlers>
    <add name="less" type="dotless.Core.LessCssHttpHandler,dotless.Core" path="*.less" verb="*" />
  </handlers>
</system.webServer>

浏览到/path/to/nonexisting.less 会引发一个正确的错误,它向我显示了 LessCssHttpHandler 正在运行的堆栈跟踪。

浏览到/path/to/existingfileondisk.less 只是按原样下载原始的less 文件。对我来说,似乎现有的静态文件处理程序在这里起作用,但我不确定。

我缺少什么(除了新机器;))?

【问题讨论】:

    标签: .net asp.net-mvc-3 web-config iis-6 less


    【解决方案1】:

    我也遇到了这个问题,下一个解决方案解决了这个问题:

    如果您使用的是 IIS 6 或更早版本或未使用 IIS 的集成管道,则需要配置 Web 服务器的设置,以便将对 .LESS 文件的请求路由到 ASP.NET 引擎(以便它们可以由 .LESS HTTP 处理程序处理)。更多详情请阅读How ASP.NET Web Pages are Processed on the Web Server

    如何配置 IIS6 的步骤:

    1. 右键单击网站 -> 属性 -> 主目录 -> 配置 -> 应用程序扩展 -> 添加 -> :
      • 可执行文件 = asp.net DLL 的路径(例如 c:\windows\microsoft.net\framework\v4.0.30319\aspnet_isapi.dll)
      • 扩展 = .less
      • 取消选中“验证该文件是否存在”
    2. 配置 Mime 类型:右键单击网站 -> 属性 -> HTTP 标头 -> MIME 类型 -> 新建 -> 扩展名 = .less ,MIME 类型 =”text/css”

    【讨论】:

      【解决方案2】:

      我建议您将 .less 文件全部放在一个文件夹中。假设您在根目录下创建了一个名为 Less 的文件夹。您必须将此行添加到 global.asax 以使其工作:

      public static void RegisterRoutes(RouteCollection routes)
      {
          routes.IgnoreRoute("Less/{*path}");
          ...
      }
      

      【讨论】:

        猜你喜欢
        • 2012-02-11
        • 1970-01-01
        • 2013-01-13
        • 2021-10-31
        • 1970-01-01
        • 2020-01-31
        • 2012-12-03
        • 2021-09-24
        • 1970-01-01
        相关资源
        最近更新 更多