À l'aide de CA en ASP.NET MVC faisceaux
J'ai lu l'article sur le regroupement et monification, spécialement sur l'utilisation de CDN, mais il y a des choses pas claires pour moi.
Avoir l'exemple :
public static void RegisterBundles(BundleCollection bundles)
{
//bundles.Add(new ScriptBundle("~/bundles/jquery").Include(
// "~/Scripts/jquery-{version}.js"));
bundles.UseCdn = true; //enable CDN support
//add link to jquery on the CDN
var jqueryCdnPath =
"http://ajax.aspnetcdn.com/ajax/jQuery/jquery-1.7.1.min.js";
bundles.Add(new ScriptBundle("~/bundles/jquery",
jqueryCdnPath).Include(
"~/Scripts/jquery-{version}.js"));
//Code removed for clarity.
}
- Est-il une possibilité d'utiliser le
{version}
format de CDN références, comme pour les "locaux"? - Quel est le point de l'inclure dans les paquets déjà la version compacte du script, comme jquery-1.7.1.min.js? Que faire si il n'existe pas? Ne devrait-on pas rechercher si la
.min
fichier existe et/ou de générer respectivement?
OriginalL'auteur serhio | 2014-04-24
Vous devez vous connecter pour publier un commentaire.
Ce que beaucoup de développeurs n'est pas réalisé, c'est qu'il y a une surcharge pour le constructeur de la classe de ScriptBundle et StyleBundle, qui prend deux paramètres de chaîne de caractères, par exemple pour la ScriptBundle il serait ScriptBundle(string, string) et pour la StyleBundle il serait StyleBundle(string, string). Le premier paramètre est le chemin d'accès virtuel et le deuxième paramètre est le cdnPath.
Nous pourriez vous demander, si elle prend deux paramètres, comment ne MVC savoir lequel utiliser? Ainsi, le cdn emplacement est utilisé uniquement lorsque le BundleTable.EnableOptimizations propriété est définie sur true.
Réglage de la EnableOptimization propriété à true indique MVC pour l'utilisation l'utilisation de la version compacte du fichier au lieu de la version régulière.
Lorsque cette propriété est définie à vrai, et le cdn chemin est présent MVC utiliser le cdn chemin d'accès au lieu du chemin d'accès virtuel.
Il y a une propriété, vous devez définir à true et c'est les paquets.UseCdn.
Cela dit MVC pour utiliser le cdn emplacement au lieu de la version locale. Si le BundleTable.EnableOptimization est défini à false, alors la version locale est utilisée automatiquement comme une chute en arrière, car le cdn version est la version compacte.
De lire ce blog son clair au sujet de votre réflexion:
http://www.techjunkieblog.com/2015/06/aspnet-mvc-5-configure-bundleconfig.html
OriginalL'auteur Vijay Maheriya
Vous ne pouvez pas, à ma connaissance. Mais vous pouvez garder une table de cdn et de le remplir lorsque les grappes sont chargés. Quand une nouvelle version sort que vous souhaitez utiliser, ajouter/remplacer l'entrée dans la db.
Je suis d'accord sur la partie min. Pour la n'existe pas partie de la question, faites défiler et lisez à propos de "l'Utilisation d'un CDN". Il y a un exemple pour montrer comment le vérifier. Vous avez essentiellement besoin d'avoir une copie de sauvegarde, vous pouvez faire référence à une autre ca je suppose.
Oups, mal lu. Ne pouvez pas utiliser le contrôle de version puisque c'est un fichier qui réside à l'extérieur de votre application. Une alternative serait d'avoir une table dans votre base de données que vous pouvez maintenir la dernière version en ligne qui à son tour crée dynamiquement votre bundle. De cette façon, vous pouvez modifier la can sans avoir à pousser votre application.
OriginalL'auteur Mark S
{Version} est principalement pour gagner du temps en tapant le nombre explicite, de sorte que la construction pourrait chercher les fichiers sur le disque local. Depuis la même recherche ne pouvait pas être fait sur un serveur distant, vous devez spécifier une URL exacte explicitement.
Le principal avantage pour aller avec ce regroupement syntaxe est conditionnelle, basculer entre les différentes Url de script et les balises de style dans le HTML final.
Lorsqu'un fichier demandé n'existe pas, le groupement des processus de sauter.
OriginalL'auteur Believe2014