c# - LESS 到 CSS 的转换是在客户端还是在服务器端完成的?

标签 c# asp.net asp.net-mvc asp.net-mvc-4 less

在很多比较LESS/SASS的文章中,都声称LESS会在客户端转换为CSS,使用 JavaScript 代码。

我还在 ASP.NET MVC 中发现了一个叫做 LessTransform 的东西,它被用于捆绑。

例如:

var bundle = new StyleBundle("~/Content/style").Include(
    "~/Content/myStyles.less");
bundle.Transforms.Add(new LessTransform());

bundles.Add(bundle);    

问题 1:LESS 填充是在服务器端完成的吗?

大多数比较注意到 LESS 是客户端(作为性能的弱点),而 SASS 与 Ruby 的集成更好。

问题 2:是否真的因为 LessTransform 在使用 ASP.NET MVC 4.0 时 LESS 是一个更直接的选择?

最佳答案

  1. 是的,在您的示例中,转换是服务器端的。可以在客户端编译它,但捆绑时情况并非如此。当我说客户端时,我指的是浏览器,并非所有浏览器都支持它(仅限现代浏览器)。

  2. 我同意 less 在 asp.net mvc 中得到更多支持。 尤其是 Visual Studio Web Essentials 支持 less。

http://vswebessentials.com/features/less

我经常用它来:

  • .less 到 .css 预览
  • 查看 .less 编译的输出
  • 提取变量/混合

更新

它确实支持 Sass,但在 2013 年 5 月 5 日发布时受到限制并被删除。

要证明 .less 是在服务器上编译的,如果将以下内容添加到 bundle 中的 less 文件(未编译):

@color: #4D926F;

#header {
  color: @color;
}
h2 {
  color: @color;
}

然后在编译后的浏览器中查看返回的响应:

#header {
  color: #4d926f;
}
h2 {
  color: #4d926f;
}

Compiled less

关于c# - LESS 到 CSS 的转换是在客户端还是在服务器端完成的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21204175/

相关文章:

c# - 创建丰富枚举的想法

c# - .NET 实现编译器最佳性能的最佳编码实践?

mysql - MySQL 和 ASP.NET MVC4 的级联删除

C# - 将字符串数据转换为实际的字符串表示形式

c# - 从列数据中查找峰值间隔

c# - 如何获取刚刚插入的记录的 pkey 值(自动增量)?

javascript - 简单的 Javascript If 语句在 ASP.NET MVC View 中不起作用

c# - 为什么我从这段代码片段中得到 'The remote server returned an error: (401) Unauthorized.'?

c# - 使用 TempData 几个

asp.net-mvc - 在运行时使用 Unity 属性注入(inject)注入(inject) IPrincipal