未使用无点文件的样式

时间:2014-12-18 09:58:32

标签: css asp.net webforms less dotless

我们有一个使用.less文件的网站(使用nuget安装了预编译器dotless),但.less文件不作为css文件处理。

尝试在firefox中查看网站时,控制台会使用以下错误: 没有加载样式表http:// website / css / init.less,因为它的MIME类型" application / octet-stream"不是" text / css"。

我们的无网络文件正在尝试导入更多文件:

@import "imports";
..

但即使用css代码替换此文本,样式仍未应用。但是,如果我在Visual Studio中转到该文件,它将显示导入文件中的所有css。

1 个答案:

答案 0 :(得分:2)

如果您正在使用dotLess处理程序来动态处理和提供.less文件(这对于调试很好,但您可能需要考虑预编译以进行发布),则需要确保你也用正确的mimetype发送它们。

您可以在IIS Admin中的服务器级别执行此操作(如果您可能在计算机上的多个站点使用此功能),或者通过web.config在本地站点级别执行此操作 - 请注意,您不能两者都做,IIS会抱怨文件扩展名有多个条目。

要在web.config中执行此操作,请在<configuration><system.webServer>元素中添加以下元素:

<staticContent>
  <mimeMap fileExtension=".less" mimeType="text/css" />
</staticContent>

显然,如果您已经有一些mimemap条目,只需在那里添加mimemap。

这将确保IIS声称从处理程序提供的.less文件为CSS而非默认application/octect-stream

如果仍未按照处理方式提供,则还需要检查其他一些事项:

  1. 确保在<system.webserver><handlers><system.web><httpHandlers>部分中正确注册了处理程序(具体取决于您使用的IIS版本:
    <add name="dotless" path="*.less" verb="GET" type="dotless.Core.LessCssHttpHandler,dotless.Core" resourceType="File" preCondition="" />

    <add path="*.less" verb="GET" type="dotless.Core.LessCssHttpHandler, dotless.Core" />
  2. 确保将IIS配置为通过步骤1中配置的ASP.NET处理程序发送所有请求。默认情况下,.less文件可能被视为“静态文件”,并且只能由StaticFileModule处理。登记/> enter image description here