2013-10-09 3 views
5

Amo Bundling and Minification in ASP.NET MVC 4.5 e utilizzarlo molto.Raggruppare e ridurre manualmente JS da un'azione del controller

Tuttavia, un piccolo problema è che i nostri "plug-in" sono ospitati su un dominio senza cookie, che è in un progetto separato nella mia soluzione di Visual Studio.

Sto cercando una soluzione che consenta al nostro sito principale di richiedere un file JS in bundle e minificato contenente un numero qualsiasi dei nostri plug-in dal sito senza cookie. Qualcosa di simile:

http://my.cookieless.domain/plugins.js?include=alpha&include=bravo,charlie 

Finora, la soluzione migliore che posso trovare è quello di utilizzare un terzo raggruppamento partito e la biblioteca minification, che sembra eccessivo considerando ASP.NET ha un costruito in

E 'possibile. chiamare manualmente il processo di raggruppamento/minificazione di ASP.NET da un'azione interna al controller?

public JavaScriptResult Index(IList<string> include) 
{ 
    //bundle and minify JS 
} 

risposta

3

mi sono imbattuto in questo alla ricerca di qualcosa di simile, ecco la soluzione:

public ActionResult DynamicJs() 
{ 
     // Obviously this will be dynamically generated 
     string javaScript = new Minifier().MinifyJavaScript("alert('Hello world!');"); 

     //returns minified javaScript 
     return JavaScript(javaScript); 
} 

Lo stesso vale per i CSS. Si potrebbe desiderare di utilizzare:

new Minifier().MinifyStyleSheet(styleSheet, new CssSettings { ColorNames = CssColor.Hex } 

classe L'Minifier è membro della Microsoft.Ajax.Utilities, che si possono ottenere dal pacchetto WebGrease Nuget.

+0

Grazie, ma per quanto riguarda il pacchetto? Cosa succede se voglio minimizzare più file e raggrupparli in un'unica risposta? – Stephane

+0

Si utilizza il metodo normale. Bundling e minification MVC. https://docs.microsoft.com/en-us/aspnet/mvc/overview/performance/bundling-and-minification –