web-dev-qa-db-fra.com

La publication d'un site Web ne met pas à jour mes ensembles de CSS

Lorsque j'exécute mon code à partir de Visual Studio en mode de publication et que je vérifie la feuille de style fournie, je peux voir les mises à jour apportées aux fichiers CSS de cet ensemble. Toutefois, lorsque je publie le site Web sur le serveur ou sur ma machine locale, mes modifications dans les feuilles de style ne sont pas apportées. La feuille de style fournie est toujours l'ancienne.

J'ai essayé une réinitialisation de IIS, une nouvelle génération/reconstruction, supprimé tous les fichiers du dossier IIS et republié.

J'utilise MOINS si cela fait une différence.

Ma configuration de paquet:

bundles.Add(new StyleBundle("~/bundles/requiredStyles").Include(
    "~/Content/Style/Libs/bootstrap.min.css",
    "~/Content/Style/Libs/font-awesome.min.css",
    "~/Content/Style/Globals/application.css",
    "/Content/Style/Libs/muliDropdown.css",
    "~/Content/Style/Libs/smoothDivScroll.min.css",
    "~/Content/Style/Libs/jasny-bootstrap.min.css"
));

Je vérifie le css fourni en visitant http://www.mywebsite.com/bundles/requiredStyles

J'ai donc apporté un changement dans application.css, ce qui est correct si j'appuie sur Visual Studio (en mode de publication), mais lorsque je publie sur mon IIS local, mon changement n'y est plus.

11
garethb

Cela peut arriver si vous avez une version simplifiée d'un fichier css dans le même répertoire que votre fichier non minifié.

Par exemple, si vous avez les fichiers suivants:

 
 ~/Content/bootstrap.css 
 ~/Content/bootstrap.min.css 
 

dans votre répertoire et si vous enregistrez le fichier "bootstrap.css" dans votre bundle, l'optimiseur tentera d'abord d'utiliser le fichier "bootstrap.min.css" lors de la publication. Si vous avez uniquement mis à jour le fichier "bootstrap.css" sans mettre à jour le fichier "bootstrap.min.css", vous obtiendrez les anciens styles de "bootstrap.min.css". Vous pouvez résoudre ce problème en supprimant le fichier "bootstrap.min.css" ou en le mettant à jour.

Cela ne se produit pas dans une version de débogage car il ne récupère pas les fichiers minifiés si votre compilation est configurée pour le débogage à l'aide de ce qui suit:

<system.web>
    <compilation debug="true" />
    <!-- Lines removed for clarity. -->
</system.web>

Vous pouvez également écraser le paramètre web.config en désactivant les optimisations via:

 
 BundleTable.EnableOptimizations = false; 
 

Cela irait dans votre fichier BundleConfig.cs.

39
Filip Stanek

Dans mon cas, bootstrap.min.css existe également dans le dossier de contenu que j'ai supprimé et le site Web fonctionne correctement.

selon Filip Stanek, "l'optimiseur essaiera d'abord d'utiliser le fichier" bootstrap.min.css "lors de la publication"

même si nous ne l'avons pas ajouté dans la configuration de paquet lors de la publication du code, il pointe vers "bootstrap.min.css"

1
Dhruv Patel

J'ai récemment rencontré un problème similaire avec le groupement. J'utilise angularJS dans un projet webapi en visual studio.

Mon web.config avait debug mis à true. Je l'ai mis à faux. Pas de changement.

Ensuite, j'ai essayé de définir mes conditions de compilation sur true (dans la méthode global.asax.cs | app ... start):

'#if DEBUG'
        'BundleTable.EnableOptimizations = true;'
'#else'
        'BundleTable.EnableOptimizations = true;'   
'#endif'

Cela n'a pas fonctionné non plus.

Finalement, j'ai fini par déplacer le fichier référencé/manquant (un <controllerName>.js) du paquet vers un autre emplacement de la pile. Lorsque je débogue, je supprime le commentaire du fichier de l'ensemble car je l'inclue directement dans le fichier index.html. Il est possible que VS n'ait pas compilé le changement lorsque je l'ai restauré.

' bundles.Add(new ScriptBundle("~/SomeBundleName.js")
           .Include("~/Scripts/IWASMissingIntheBundle.js")
           .Include("~/Scripts/IWASNEVERMISSINGANDstillhere.js")
           .Include("~/Scripts/MOVEDIWASMissingHEREANDNOWImFound.js")'

Ma proposition est que le compilateur n'a pas pris en compte la modification et que, indépendamment du nettoyage et de la reconstruction, il ne l'a toujours pas été. Après avoir déplacé le fichier et republié, il semblait fonctionner.

Mais j'ai aussi vidé le cache dans mon navigateur, non seulement à l'aide du bouton "Effacer le cache" que j'utilise dans Chrome, mais également à partir du panneau du débogueur | Réseau. Quelques étapes à travers ce qui précède devraient aider.

0
user1076384