использование SquishIt в ASP.NET MVC 3 - PullRequest
10 голосов
/ 21 сентября 2011

Я пытаюсь использовать SquishIt для минимизации CSS и Javascripts в проекте ASP.NET MVC 3.

Когда я использую метод Render:

.Render("~/content/themes/base/combined_#.css");

css генерируется со случайным числомвместо #, но ссылка на файл css не создается, и мне нужно вставить ее вручную в файл cshtml:

<link href="~/content/themes/base/combined_#.css" rel="stylesheet" type="text/css" />

, но я не знаю это случайное число, добавленное к имени файла.

Без # он работает нормально.

Но у меня сложилось впечатление, что Render должен автоматически генерировать ссылку css в соответствии с этой статьей:

http://www.codethinked.com/squishit-the-friendly-aspnet-javascript-and-css-squisher

Я прав?

Ответы [ 2 ]

20 голосов
/ 21 сентября 2011

Для меня отлично работает следующее:

@Html.Raw(Bundle.JavaScript()
        .Add("~/scripts/jquery-1.5.1.js")
        .Add("~/scripts/jquery.unobtrusive-ajax.js")
        .ForceRelease()
        .Render("~/scripts/combined_#.js")
)

@Html.Raw(
    Bundle.Css()
        .Add("~/content/site.css")
        .Add("~/content/site2.css")
        .ForceRelease()
        .Render("~/content/combined_#.css")
)

испускает:

<script type="text/javascript" src="/scripts/combined_B8A33BDE4B3C108D921DFA67034C4611.js"></script>
<link rel="stylesheet" type="text/css" href="/content/combined_97A4455A9F39EE7491ECD741AB4887B5.css" />

и когда я перехожу на соответствующий URL, получается правильный сжатый и объединенный ресурс.

Существует также Contrib проект , который предоставляет базовую страницу Razor для интеграции SquishIt в приложение ASP.NET MVC.

13 голосов
/ 01 декабря 2011

Или добавьте ссылку на сборку SquishIt.Mvc и используйте метод .MvcRender

например.

@using SquishIt.Framework
@using SquishIt.Mvc

@(Bundle.JavaScript()
    .Add("~/scripts/jquery-1.5.1.js")
    .Add("~/scripts/jquery.unobtrusive-ajax.js")
    .ForceRelease()
    .MvcRender("~/scripts/combined_#.js")
)
...