Je suis à l'aide de la ASP.NET MVC 4 groupement et les minifying des fonctionnalités dans l' Microsoft.AspNet.Web.Optimization
d'espace de noms (par exemple, @Styles.Render("~/content/static/css")
).
J'aimerais l'utiliser en combinaison avec un Windows Azure CDN.
J'ai regardé dans la rédaction d'une coutume BundleTransform
, mais le contenu n'est pas optimisé encore là.
J'ai aussi regardé dans l'analyse et le téléchargement de l'optimisation des flux de l'exécution, mais qui se sent comme un hack pour moi et je n'aime pas vraiment ça:
@StylesCdn.Render(Url.AbsoluteContent(
Styles.Url("~/content/static/css").ToString()
));
public static IHtmlString Render(string absolutePath)
{
// get the version hash
string versionHash = HttpUtility.ParseQueryString(
new Uri(absolutePath).Query
).Get("v");
// only parse and upload to CDN if version hash is different
if (versionHash != _versionHash)
{
_versionHash = versionHash;
WebClient client = new WebClient();
Stream stream = client.OpenRead(absolutePath);
UploadStreamToAzureCdn(stream);
}
var styleSheetLink = String.Format(
"<link href=\"{0}://{1}/{2}/{3}?v={4}\" rel=\"stylesheet\" type=\"text/css\" />",
cdnEndpointProtocol, cdnEndpointUrl, cdnContainer, cdnCssFileName, versionHash
);
return new HtmlString(styleSheetLink);
}
Comment puis-je télécharger le logiciel et minimisé les versions automatiquement à mon Windows Azure CDN?