Utilizzando il built-in MVC4 bundler, come faccio a anteporre il mio URL CDN ai tag di collegamento che produce? Ho installato Amazon Cloudfront in modo che raccolga risorse dal mio server web quando richiesto per la prima volta. Così, quando ho definisco un bundle in questo modo:Prepend conto dell'URL CDN sull'output del bundle di mvc 4
bundles.Add(new StyleBundle("~/Content/css").Include(
"~/Content/reset.css",
"~/Content/960_24_col.css",
"~/Content/Site.css"
));
Se distribuito, mi può fare riferimento così:
http://[cloundfrontid].cloudfront.net/Content/css?v=muhFMZ4thy_XV3dMI2kPt-8Rljm5PNW0tHeDkvenT0g1
Ora ho solo bisogno di cambiare i collegamenti prodotti dalla Bundler dall'essere relativamente ai collegamenti assoluti indicando il mio CDN.
<link href="[INSERT_CDN_URL_HERE]/Content/css?v=muhFMZ4thy_XV3dMI2kPt-8Rljm5PNW0tHeDkvenT0g1" rel="stylesheet"/>
Penso che possa essere possibile riscrivere il percorso utilizzando IBundleTransform ma non riesco a trovare alcun esempio di questo.
NOTA: Giusto per essere chiari, so che è possibile specificare un collegamento CDN per un pacchetto, ma che funziona solo se il pacchetto può essere sostituito da un collegamento statico.
Perché non è possibile utilizzare un collegamento statico al CDN? –
perché non so quale sarà il collegamento in fase di compilazione. Il bundler lo assegna dinamicamente con una stringa di busting della cache, ad es./Content/css? V = muhFMZ4thy_XV3dMI2kPt-8Rljm5PNW0tHeDkvenT0g1 – PeteG
Il tuo CDN sta effettivamente utilizzando la stringa di query per attivare il contenuto restituito? Non potresti semplicemente codificare esplicitamente le versioni nel tuo CDN? Ad esempio/content/css1 e lo colpisci ogni volta che giri i tuoi bundle? –