2012-06-09 3 views
5

Utilizzo di Bundle in MVC per raggruppare tutti gli script e i CSS insieme che è ottimo ma .... C'è un modo per includere script o css da risorse in una condivisione biblioteca del progetto in un pacchetto, o qualcuno sa qualcosa di simile ai pacchetti che possono farlo?Bundle Script e CSS da Risorse in Assemblies per MVC

+2

Ciao, lì. Hai trovato una soluzione per questo? – Captain0

risposta

1

Io probabilmente iniziare a scrivere un fascio trasformazione personalizzata classe di leggere le risorse necessarie e restituire il contenuto e tipo di contenuto:

public class ResourceTransform : IBundleTransform 
{ 
    public void Process(BundleContext context, BundleResponse response) 
    { 
     string result; 

     using (Stream stream = Assembly.GetExecutingAssembly() 
      .GetManifestResourceStream("YourAssemblyNamespace.YourResourceFolder.YourFile.css")) 
     { 
      using (StreamReader reader = new StreamReader(stream)) 
      { 
       result = reader.ReadToEnd(); 
      } 
     } 

     response.ContentType = "text/css"; 
     response.Content = result; 
    } 
} 

Per l'uso in produzione, probabilmente si vuole rendere la classe ResourceTransform un po ' meno hardcoded e invia le risorse che vuoi come parametri o proprietà, ma ottieni l'idea.

In questo modo è possibile aggiungere questo pacchetto alla vostra collezione:

Bundle resources = new Bundle("~/css/resources"); 
    resources.Transforms.Add(new ResourceTransform()); 
    resources.Transforms.Add(new CssMinify()); 

bundles.Add(resources);