Pergunta

I'm trying to use SquishIt for minifying CSS and Javascripts in ASP.NET MVC 3 project.

When I use Render method:

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

css is generated with random number instead of #, but link to css file is not generated and I need to insert it manually to cshtml file:

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

but I don't know this random number, added to file name.

Without # it works fine.

But I have impression that Render should automatically generate css link according to this article:

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

Am I correct?

Foi útil?

Solução

The following works great for me:

@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")
)

it emits:

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

and when I navigate to the corresponding url the correct squished and combined resource is obtained.

There is also a Contrib project which provides a base Razor page to integrate SquishIt in an ASP.NET MVC application.

Outras dicas

Or add a reference to the SquishIt.Mvc assembly and use the .MvcRender method

eg.

@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")
)
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top