让Squish表现得像AssMan

时间:2014-01-22 17:27:37

标签: asp.net-mvc optimization squishit

我正在开发一个MVC4网站,我想使用一些资源管理软件来整合&缩小JS& CSS(+ less& coffeescript),

SquishIt拥有我想要的所有插件,它们已经配置完毕。所有的例子都展示了SquishIt背后的一个非常简单的想法,它从不包括任何资产管理。它看起来像(和JavaScript模型几乎相同):

<html>
  <head>
    @Html.BundleCss()
            .Add("~/Content/first_file.css")
            .Add("~/Content/second_file.css")
            .Add("~/Content/third_file.css")
            .Render()
  </head>

我想要做的更像是这样:

_Layout.cshtml:
<html>
  <head>
    @Html.BundleCss().Render()
  </head>
  ....

App_Start():
  Bundle.Css().Add("~/Content/bootstrap.css").Add("~/Content/jquery-ui.css");

_PartialView.cshtml:
  @Html.BundleCss().AddString("a:active { color: red }")

这背后的想法是,我会建立我需要的CSS / JS,因为视图递归渲染,然后minifier在最后构建,缩小和缓存。 AssMan(http://assman.codeplex.com/)执行此操作,但似乎支持较少,需要更多工作才能获得所需的缩略词和语言支持。

想法,建议?

2 个答案:

答案 0 :(得分:0)

Cassette似乎是原生这样做的。它并不像我想的那样干净(我更喜欢能够从页面引用任意脚本和CSS而不必捆绑它们)但它确实有效。

答案 1 :(得分:0)

如果我正确地关注了您的问题,我认为this issue与您将要获得的距离非常接近(从this SO thread开始)。我真的不关注,你的示例中的.AddString调用应该添加到哪个包中?在我看来,你最终会得到每个视图的单个组合文件,这与从优化角度来看一样糟糕。

如果您阅读有关该问题的讨论并查看链接的提交,那么它可能会为您提供有关如何获取您所使用的功能的一些想法(它实际上可能是我们已实现的AutoBundler内容,可用现在预售,并将在不久的将来获得一个软释放。)