2

Je tente de regrouper les scripts et les styles bootstrap pour mon application. Mon débogage fonctionne Mais quand je le publie, ne charge pas les scripts et les styles.Le regroupement avec MVC4.5 ne fonctionne pas après la publication

ajouter une BundleConfig (BootstrapBundleConfig)

public static void RegisterBundles(BundleCollection bundles) 
    { 
     bundles.Add(new ScriptBundle("~/js").Include(
      "~/Scripts/jquery-{version}.js", 
      "~/Scripts/jquery-ui-1.10.4.custom.js", 
      "~/Scripts/jquery-migrate-{version}.js", 
      "~/Scripts/bootstrap.js", 
      "~/Scripts/gridmvc.js", 
      "~/Scripts/gridmvc.lang.fa.js", 
      "~/Scripts/jquery.validate.js", 
      "~/scripts/jquery.validate.unobtrusive.js", 
      "~/Scripts/jquery.validate.unobtrusive-custom-for-bootstrap.js", 
      "~/scripts/entitypicker.js", 
      "~/scripts/js-persian-cal.js", 
      "~/scripts/json2.js", 
      "~/scripts/bootbox.js", 
      "~/Scripts/jalali.js", 
      "~/Scripts/calendar.js", 
      "~/Scripts/calendar-setup.js", 
      "~/Scripts/lang/calendar-fa.js" 
      )); 
     bundles.Add(new StyleBundle("~/content/css").Include(
      "~/Content/bootstrap.css", 
      "~/Content/bootstrap-responsive.css", 
      "~/Content/bootstrap-mvc-validation.css", 
      "~/Content/themes/ui-lightness/jquery-ui.css", 
      "~/Content/js-persian-cal.css", 
      "~/Content/entitypicker.css", 
      "~/Content/gridmvc.css", 
      "~/Content/aqua/theme.css", 
      "~/Content/calendar-system.css" 
      )); 

    } 

ajouter enregistrer ce dans Global

BootstrapSupport.BootstrapBundleConfig.RegisterBundles(System.Web.Optimization.BundleTable.Bundles); 

et définir des styles/script dans _layaout

<link href="@Styles.Url("~/content/css")" rel="stylesheet" /> 
@Scripts.Render("~/js") 

Mais quand publierai et ouvrir Voir la page Source

<link href="/Content/css?v=65vDyivXbF9ucPBBLls9CVnwUcCNass7hOMNUEXbN-I1" rel="stylesheet" /> 

et quand ouvrir ce fichier obtenir une erreur en première ligne.

/* Minification failed. Returning unminified contents. 
(962,1): run-time error CSS1019: Unexpected token, found '@charset' 
(962,10): run-time error CSS1019: Unexpected token, found '"UTF-8"' 
(962,17): run-time error CSS1019: Unexpected token, found ';' 
(994,1): run-time error CSS1019: Unexpected token, found '@-webkit-keyframes' 

Je recherche dans google et utilisé différentes méthodes, mais l'erreur n'est pas résolue.

  1. ajouter tous style à un chemin spécial (Content/Them/Bootstrap) et utiliser new StyleBundle("~/content/Them/Bootstrap")

  2. utilisation BundleTable.EnableOptimizations = true;

autres ..

Répondre

0

Votre css a quelques-uns ' problèmes »lors de la minification. Cela peut être dû à un mauvais css ou à une mauvaise optimisation. Essayez de valider votre CSS et de voir si vous pouvez repérer le coupable.

Pour une solution de contournement, utilisez BundleTable.EnableOptimizations = false qui ne minimisera pas le CSS.

Pour « debug » ceci sur l'hôte local, changer votre configuration web et de supprimer le débogage attribut = true (cela rendra votre rapetisser css sur votre machine dev)

ayant également une base de dossier différent sur votre forfait fera toute URL relative (comme une image d'arrière-plan) sur votre feuille de style ne fonctionne pas.

+0

Je supprime 'BundleTable.EnableOptimizations' mais ne fonctionne pas. – Niloo

+0

Je ne vous ai jamais dit de l'enlever. –

+0

Je définis false/true mais ne charge pas les styles/scripts. – Niloo

1

Cela se produit généralement si vos fichiers CSS ne sont pas bien formatés, mettez votre code CSS à tester en utilisant http://csslint.net/.

également au lieu d'utiliser cette ligne

<link href="@Styles.Url("~/content/css")" rel="stylesheet" /> 

vous pouvez utiliser cette

@Styles.Render("~/content/css") 

Si vous voulez déboguer sans vous publier pouvez ajouter cette ligne à votre méthode RegisterBundles de votre BundleConfig:

BundleTable.EnableOptimizations = true; 
+0

Merci, je teste css et je corrige toutes les erreurs (ne corrige pas les avertissements). et utilisez '@ Styles.Render (" ~/content/css ")'. c'est enlever les erreurs quand voir le fichier css dans la publication mais ne charge pas le fichier de styles. :( – Niloo

+0

Si c'était un style incorrect pourquoi cela fonctionnerait-il en cours d'exécution localement? Surelt j'ai quelque chose à voir avec les autorisations de fichiers lorsque vous publiez? – Zapnologica

0

Ceci est le coupable @charset "UTF-8". Cherchez dans vos fichiers CSS et voyez si vous pouvez le trouver. Cela doit être en haut du fichier css groupé. C'est-à-dire en haut du premier fichier CSS de la liste de paquets.Si ce n'est pas le cas, il échouera à minifier.

Il est souvent utilisé lorsqu'il y a des caractères Unicode dans le fichier CSS. Et c'est normalement à cause de l'utilisation d'une police d'icône comme la police génial. Mais si vous n'en avez pas besoin dans votre fichier CSS, alors retirez-le.

+0

Je recherche dans les fichiers CSS mais ne trouve pas @charset "UTF-8" ' . – Niloo

0

https://stackoverflow.com/a/19544226/2440976 -Ce est une question dup je crois - Voici probablement la réponse simple (il a travaillé pour moi!)

(De réponse) IIS Config> Authentification> RightClickOn Anonymous Auth> Cliquez sur Modifier> Vérifier pool d'applications identité

Questions connexes