Forcer ASP.Net MVC Bundle à rendre les fichiers javascript dans un certain ordre
Je suis en train de travailler sur un ASP.Net MVC 4 application et l'utilisation de la subordination et la minifiction de rendre les styles et les fichiers de script.
J'ai un fichier de script (Fichier Un) que l'appel de la fonction dans un autre fichier (Fichier B) , quand je suis en utilisant
@Scripts.Render()
méthode render link
balise pour Fichier Un avant Fichier B donc le feu d'une erreur et le script ne fonctionne pas correctement.
Est-il de toute façon à force de @Script.Render()
de rendre link
balises dans un certain ordre, sans l'aide d'une liasse pour chaque fichier????
MODIFIER
Je suis en utilisant IncludeDirectory
méthode pour inclure tous les fichiers de script dans le dossier
public class BundleConfig
{
public static void RegisterBundles(BundleCollection bundles)
{
bundles.Add(new ScriptBundle("~/bundles/js").IncludeDirectory(
"~/Scripts/js",
"*.js"));
}
}
source d'informationauteur Amir Ismail
Vous devez vous connecter pour publier un commentaire.
Écrire votre propre donneur d'ordre comme Darin Dimitrov réponse à cette question: Comment puis-je spécifier explicitement ScriptBundle inclure commande?
Regroupement par défaut, ajouter les scripts dans l'ordre alphabétique. Il sera déplacer connu des bibliothèques et ajoutez-les dans le bon ordre (il va mettre jQuery en premier, et ensuite jQuery-ui, par exemple).
La façon la plus simple est de commander les scripts de vous-même. Une façon est de s'éloigner des scripts personnalisés pour un autre dossier, puis ajouter tous les scripts dans leur propre bundle dans l'ordre que vous voulez:
Une autre option est de jokers. Cette option comprend le déplacement de vos scripts personnalisés pour leur propre dossier, mais seulement d'en avoir un bundle (source):*
Aussi concernant votre commentaire "Est-il un moyen de forcer
@Script.Render()
de rendrelink
balises dans un certain ordre, sans l'aide d'une liasse pour chaque fichier" -- note qui séparent les balises link est seulement dans le mode de débogage. Une fois que vous faites de déployer en mode release, il n'y aura qu'une seule balise de lien et un fichier.Ont un coup d'oeil à BundleCollection.FileSetOrderList pour la commande de bundeled fichiers. J'ai trouvé cet article de blog à ce sujet: http://weblogs.asp.net/imranbaloch/archive/2012/09/30/hidden-options-of-asp-net-bundling-and-minification.aspx qui explique assez bien.
Un exemple de code de JQuery commande:
Vous devriez envisager d'utiliser une Cassette http://getcassette.net/
Il prend en charge la détection automatique de script dépendances basé sur des références de script trouvé à l'intérieur de chaque fichier.
Si vous préférez coller à la MS d'Optimisation Web solution mais comme l'idée d'organiser des scripts basés sur des références de script, vous devriez lire mon post de blog à http://blogs.microsoft.co.il/oric/2013/12/27/building-single-page-application-bundle-orderer/