9

自从将我的网站从 ASP.NET WebPages 切换到 MVC4 后,我遇到了 Lesscss 的问题。

CSS + Javascript 行:

<link href="@Url.Content("~/Content/site.css")" rel="stylesheet/less" type="text/css" />
<script src="@Url.Content("~/Scripts/less-1.3.0.min.js")" type="text/javascript"></script>

我不知道出了什么问题。路径是正确的。当您从 CSS 链接中删除“/less”以正常使用它时,样式表就会起作用。尝试使用 Lesscss JS 文件时,它加载正常但没有加载样式表。IE 中的 F12 开发工具也确认没有加载样式表。

在将 Lesscss 与 MVC4 一起使用时,是否还有其他人遇到过类似的问题?

4

2 回答 2

25

在我看来,更好地设置它的一种简单方法是使用 nuget。您不必使用 nuget,但它只是让事情变得如此简单。

  1. 使用 nuget安装dotless
  2. 使用 nuget安装System.Web.Optimization.Less 。
  3. 添加您的捆绑包

    bundles.Add(new LessBundle("~/Content/less")
                    .Include("~/Content/less/more.less"));
    
  4. 引用捆绑包

    @Styles.Render("~/Content/less")
    
  5. 完毕

于 2013-02-27T23:31:32.897 回答
9

您应该在 web.config 中为 less 文件扩展名指定 mime 类型,并在链接中使用它而不是 css。

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

就我个人而言,我使用 dotless 并在服务器上处理它是一种更好的方法。

此外,这并不是您问题的真正答案,而只是一个侧面——使用 MVC4,您不再需要 @Url.Content()。 http://www.davidhayden.me/blog/asp.net-mvc-4-the-new-tilde-slash-feature-in-razor-2

于 2012-05-28T09:14:34.383 回答