我们有一个使用.less文件的网站(使用nuget安装了预编译器dotless),但.less文件不作为css文件处理。
尝试在firefox中查看网站时,控制台会使用以下错误: 没有加载样式表http:// website / css / init.less,因为它的MIME类型" application / octet-stream"不是" text / css"。
我们的无网络文件正在尝试导入更多文件:
@import "imports";
..
但即使用css代码替换此文本,样式仍未应用。但是,如果我在Visual Studio中转到该文件,它将显示导入文件中的所有css。
答案 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
。
如果仍未按照处理方式提供,则还需要检查其他一些事项:
<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" />
.less
文件可能被视为“静态文件”,并且只能由StaticFileModule处理。登记/>