Использование SquishIt в ASP.NET MVC 3
Я пытаюсь использовать 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
Правильно ли я?
Ответы
Ответ 1
Следующее отлично работает для меня:
@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.
Ответ 2
Или добавьте ссылку на сборку 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")
)