在.NET 4 MVC3项目中,我在IIS6上运行本地计算机(不要问为什么)。它在IIS中有一个适当的通配符映射到v4 aspnet_isapi.dll,对于.less扩展名也是如此。
Web.config定义了这些IIS6和IIS7 httphandler。
<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
只需按原样下载原始文件。对我来说,似乎现有的静态文件处理程序在这里,虽然我不确定。
我缺少什么(除了新机器;))?
答案 0 :(得分:2)
我也遇到过这个问题,下一个解决方案解决了这个问题:
如果您使用的是IIS 6或更早版本,或者未使用IIS的集成管道,则需要配置Web服务器的设置,以便将.LESS文件的请求路由到ASP.NET引擎(以便它们可以是由.LESS HTTP处理程序处理)。有关详细信息,请参阅How ASP.NET Web Pages are Processed on the Web Server
步骤如何配置IIS6:
答案 1 :(得分:1)
我建议你将.less文件全部放在文件夹中。假设您在root上创建了一个名为 Less 的文件夹。您已将此行添加到 global.asax 以使其正常工作:
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("Less/{*path}");
...
}