关于.LESS文件的Intellisense

时间:2011-04-28 23:07:01

标签: asp.net less httphandler dotless

我将LESS引入现有的ASP.NET Web表单应用程序中。为了让intellisense工作,我决定设置LessCssHttpHandler来拦截以.less.css结尾的文件请求。这样,Visual Studio仍然认为我们正在处理CSS文件。我通过在web.config文件中添加以下行来完成此操作:

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

为了使其工作,我不得不调整我的IIS设置,以便ASP.NET框架处理.css文件。不幸的是,通过这样做,现在我现有的.css文件(由无点HTTP处理程序处理,因为它们不以.less.css结尾)不返回任何内容。这是有道理的,因为ASP.NET框架在看到具有该扩展名的文件时并不真正知道该怎么做。

除了我上面处理普通.css文件之外,我还能设置某种基本的HTTP处理程序吗?类似的东西:

<add verb="*" path="*.css" type="insert some base HTTP handler here that will simply return the contents of the file" />

3 个答案:

答案 0 :(得分:4)

看起来我正在寻找StaticFileHandler。这就是我们最终将它添加到web.config中的httpHandlers节点的方式:

<add verb="*" path="*.less.css" validate="false" type="dotless.Core.LessCssHttpHandler, dotless.Core, Version=1.1.0.7, Culture=neutral, PublicKeyToken=96B446C9E63EAE34, processorArchitecture=MSIL" />
<add verb="*" path="*.css" type="System.Web.StaticFileHandler" />

答案 1 :(得分:3)

我们使用Chirpy作为我们的LESS支持(以及我们的谷歌闭包编译器支持)。它允许您配置LESS的文件扩展名,例如 .less.css ,然后您可以获得Intellisense支持。

它不是在运行时进行翻译,而是在visual studio中的设计时进行。当您编辑并保存LESS文件时,Chirpy会启动并处理生成css文件的LESS文件。这样我们就可以避免将css文件服务交给ASP.NET了。

答案 2 :(得分:0)

我倾向于使用控制台编译器并将less文件重命名为.css httphandler通常仅适用于需要CSS参数的人。