web-dev-qa-db-fra.com

Visual Studio 2013 mettant en cache l'ancienne version du fichier .js

Je travaille sur un petit projet d'api Web dans Visual Studio 2013 Ultimate. Windows 2013. Internet Explorer 9. Lorsque je lance (débogage) à partir du VS en utilisant le serveur Web interne (je suppose qu'il s'agit de IIS Express, maintenant), je constate que les modifications apportées les pages javascript sont ignorées. Placer un point d'arrêt dans le javascript montre l'ancien code sans mes modifications. 

CTRL + F5 ne force pas l'application à utiliser la page actuellement mise à jour. Vérifier la page, puis la relancer fonctionne souvent. Y a-t-il un paramètre ou une astuce qui m'aidera ici?

30
Joe

Effacer l'historique de la cache semblait un peu excessif et je ne veux pas le faire tout le temps.

La solution suivante a fonctionné dans Internet Explorer: Commencez par activer le débogage de script:

  1. Menu Outils -> sélectionnez Options Internet
  2. À l’avance, décochez la case "Désactiver le débogage de script (Internet Explorer)".

Ensuite, assurez-vous que vous obtenez la nouvelle page:

  1. Dans le menu Outils, choisissez Options Internet.
  2. Sous l'onglet Général, sous Historique de navigation, cliquez sur Paramètres. 
  3. Sous "Rechercher les dernières versions des pages stockées", assurez-vous que "Chaque fois que je visite la page Web" est sélectionné.
  4. Cliquez sur le bouton OK.
24
sunnyboy

Si quelqu'un a ce problème et ctrl + F5, vider le cache du navigateur, redémarrer le débogage, changer de navigateur, changer de web.config et reconstruire le projet n'aident pas, alors une dernière chose qui fonctionne (du moins pour moi): restart Visual Studio

Changer le port de débogage sur IIS local est également utile, mais cela est beaucoup plus pénible si vous travaillez en équipe ou utilisez Azure Active Directory, etc.

8
Episodex

La seule solution qui a fonctionné pour moi a été de changer le nom du fichier javascript et de mettre à jour la configuration de l'ensemble pour pointer vers le nouveau fichier. J'ai tout essayé depuis le redémarrage de mon ordinateur, la suppression de bin/obj/cache/etc., la combinaison de touches CTRL F5, le redémarrage d'IIS, etc.

2
Rob

Si je ne me trompe pas, construisez (ctrl + shift + b) votre projet avant le débogage. Ce serveur Web s'exécute en arrière-plan sur un port de choix chaque fois que vous démarrez en mode débogage. Vous pouvez fermer la ou les tâches (barre de processus à côté de votre horloge) si vous avez besoin d'une nouvelle session ou appuyez sur F5 dans VS.

Vous pouvez éviter d'utiliser le serveur Web intégré si vous avez IIS (Express) ou quelque chose de similaire. Allez dans RUN et tapez iis en fonction de votre système d'exploitation déjà installé. Sinon, essayez de l'installer dans Control Panel> Programs or Features> Turn windows features on or off

  • ajouter un site Web (nom du site, chemin d'accès, nom d'hôte)
  • ajouter à votre fichier hôte 127.0.0.1 hostname (c:\windows\system32\drivers\etc\hosts)

Pour déboguer votre projet dans Visual Studio:

  • ouvrez votre site sur votre nom d'hôte dans votre navigateur préféré
  • cliquez sur DEBUG
  • cliquez sur ATTACH TO PROCESS
  • trouver w3wp.exe
  • appuyez sur ctrl + f5 dans votre navigateur pour lancer le débogage du code serveur

En fonction de la configuration de votre solution/projet, vous pouvez publier vos fichiers de projet directement sur IIS si vous choisissez de publier sur File System. Cliquez avec le bouton droit de la souris sur votre projet et choisissez publish. Installez-le à partir de là.

Si votre Visual Studio est à jour, vous pouvez publier des fichiers uniques avec alt+$+p.

J'espère que ça aide.

1
Tim Vermaelen

Ce qui a fonctionné pour moi était 

  1. Arrêtez Visual Studio 2013 mise à jour 2 (j'ai gagné 8.1 tous les 64 bits)
  2. Supprimer, effacer "Fichiers ASP.NET Temporaires C:\Windows\Microsoft.NET\Framework64\v4.0.30319 \" 
  3. Solution nettoyée et reconstruite 
  4. Redémarrez IIS Express. Si vous utilisez IIS, redémarrez simplement l'application et le pool.
  5. Exécutée dans le débogage VS 2013 (F5), l'ancien fichier est toujours chargé sous Documents de script> Windows Internet Explorer> Page_Name.aspx
  6. Ensuite, les outils de développement F12 effacent le cache du navigateur (IE). J'ai le même problème sous Chrome.
  7. F5 dans le navigateur, rechargez la page, charge finalement le fichier de script JS modifié avec mon débogueur; entrée et points d'arrêt définis
0
Jason Robertson

Je continue à avoir ce problème très souvent. Normalement, je commence par entrer dans le lecteur sur lequel le système d'exploitation est installé (dans mon cas, C:) et à supprimer tous les application.dll et application.pdb (ils sont stockés dans Windows\Microsoft.net\Framework\vx.x.xxxxx\Temporary ASP.NET Files). Supprimer application.dll et application.pdb dans le users\xxx. Accédez au répertoire de l'application et supprimez à nouveau application.dll et application.pdb. Effacer le cache du navigateur. Redémarrez le système (redémarrage à froid). Construisez l'application. La plupart du temps, on a constaté que cela fonctionnait. Remarque: J'utilise l'invite du DOS pour supprimer car je suis assez habitué. Mais l'utilisateur devrait avoir des privilèges d'administrateur. Ce n'est pas une solution parfaite mais ça marche. 

0
Vijay Datar

Localisez la section de code où le fichier JavaScript est chargé sur la page et ajoutez une chaîne de paramètre à la fin du test. Par exemple:

Changer src = "../ Resources/js/MyScriptFile.js" 

Pour src = "../ Resources/js/MyScriptFile.js? V = 23" 

Chaque fois que vous mettez à jour votre fichier JavaScript, vous modifiez le numéro de version. Cela forcera le navigateur à charger votre nouvelle version du fichier JavaScript. Une fois les tests terminés, vous pouvez supprimer la chaîne "? V = 23". Le bonus, si vous le laissez là, l'utilisateur final n'aura pas à actualiser le cache de son navigateur après avoir déployé votre code en production. 

0
Charles

J'ai donc eu le même problème et je pouvais l'éviter en annulant le serveur .ASP.NET .ASP.NET-Server de Visual Studio pour le débogage à partir de Visual Studio et en redémarrant le débogage. J'espère que ça aide quelqu'un.

0
Michi Mich