web-dev-qa-db-fra.com

les modifications de code angularjs n'apparaissent pas après l'actualisation du navigateur.

À chaque fois que je modifie le code dans un fichier .hmtl ou dans un fichier .js, le navigateur restitue l'ancien code et mes nouvelles modifications n'apparaissent pas dans le résultat du navigateur. 

Par exemple, j'ajoute les 2 lignes de code suivantes dans un fichier .html.

    <div class="control-group">
        <label class="control-label">First Name</label>
        <div class="controls readonly">
            {{profile.FirstName}}
        </div>
    </div>

    <div class="control-group">
        <label class="control-label">Last Name</label>
        <div class="controls readonly">
            {{profile.LastName}}
        </div>
    </div>

Puis je fais ce qui suit: 

  1. Dans VS2013, cliquez avec le bouton droit sur mon projet et affichez-le dans le navigateur (IE ou Chrome).
  2. Connectez-vous à mon application.
  3. Aller à la page respective et je vois le rendu de l'ancien fichier HTML. Je ne vois pas du tout les 2 éléments div récemment ajoutés.
  4. J'ai même appuyé sur f5 pour actualiser le navigateur mais toujours pas de chance.

Qu'est-ce que je fais mal?

27
dotnet-practitioner

Appuyez sur F12 dans votre navigateur pour faire apparaître les outils de développement. Désactiver le cache. Rechargez votre page.

43
Phil Degenhardt

Outre l'utilisation des outils de développement pour vous assurer que le cache est désactivé, vous pouvez modifier votre fichier Web.config et indiquer à IIS de ne pas mettre en cache vos fichiers angulaires:

<configuration>

  <!-- Disable IIS caching for directories containing Angular templates and scripts -->
  <location path="app">
    <system.webServer>
      <staticContent>
        <clientCache cacheControlMode="DisableCache"/>
      </staticContent>
    </system.webServer>
  </location>

...
</configuration>

Mon répertoire racine angulaire est app/. Vous devrez peut-être modifier en fonction de la structure de votre fichier.

21
Nate Barbettini

TypeScript seulement!

Dans tsconfig.json, ajoutez… 

"compileOnSave": true, 
7
RGH

Essayez de désactiver votre cache avec les outils de développement:

https://developer.chrome.com/devtools/docs/settings#general

4
Oka

Ouvrez devTools in chrome et sélectionnez l’onglet Réseau, Dans l’onglet Réseau, décochez la case Désactiver le cache et rechargez la page. 

2
harry_42

Vous devez modifier la variable d'environnement aspnetcore de la production au développement. Depuis le site officiel

... définissez une variable d'environnement pour indiquer à ASP.NET de s'exécuter en mode de développement:

  • Si vous utilisez PowerShell sous Windows, exécutez $ Env: ASPNETCORE_ENVIRONMENT = "Development"
  • Si vous utilisez cmd.exe dans Windows, exécutez setx ASPNETCORE_ENVIRONMENT "Development", puis redémarrez votre invite de commande pour que les modifications prennent effet.
  • Si vous utilisez Mac/Linux, exécutez export ASPNETCORE_ENVIRONMENT = Development.

Si vous êtes sur Linux, vous devrez peut-être le faire en tant que superutilisateur. c'est à dire.

Sudo export ASPNETCORE_ENVIRONMENT=Development

La valeur de la variable peut revenir à Production après le redémarrage. Si vous souhaitez travailler avec plusieurs environnements, je vous suggère de les définir dans le fichier launchSettings.json

{
      "iisSettings": {
      "windowsAuthentication": false,
      "anonymousAuthentication": true,
      "iisExpress": {
         "applicationUrl": "http://localhost:40088/",
         "sslPort": 0
      }
   },
     "profiles": {
       "IIS Express": {
          "commandName": "IISExpress",
          "launchBrowser": true,
          "environmentVariables": {
              "ASPNETCORE_ENVIRONMENT": "Development"
          }
       },
       "IIS Express (Staging)": {
          "commandName": "IISExpress",
          "launchBrowser": true,
          "environmentVariables": {
          "ASPNETCORE_ENVIRONMENT": "Staging"
         }
       }
     }  
   }

Lire sur les environnements ici :

1
mm_

En chrome, appuyez sur F12> allez sur l'onglet réseau> désactiver le cache

 enter image description here

1
vinayak hegde

Pour moi, aucune des réponses précédentes n'a fonctionné. J'utilisais Chrome et la seule façon pour moi de voir la mise à jour était d'ouvrir une fenêtre de navigation privée. Mon navigateur habituel, pour une raison quelconque, n’obtiendra tout simplement pas les derniers actifs.

J'ai essayé d'effacer mon cache, de le désactiver sur devtools et d'effectuer une actualisation matérielle, en vain. Le seul moyen de résoudre ce problème était de vider le cache DNS. Voici un lien avec plus de détails:

Comment effacer le cache DNS sur les ordinateurs et les navigateurs Web


En ligne de commande, voici comment procéder:

Windows 7 et versions antérieures

ipconfig /flushdns

Windows 8

ipconfig /flushdns

OSX (Yosemite, El Capitain et Sierra)

Sudo dscacheutil -flushcache
Sudo killall -HUP mDNSResponder
1
Gene Parcellano

Ou vous pouvez utiliser Browserlink dans Visual Studio 2013 pour recharger automatiquement la page

http://www.asp.net/visual-studio/overview/2013/using-browser-link

1
Toan Nguyen

Vous devez exécuter la commande yarn webpack:build pour recompiler votre code client. Sinon, les modifications/mises à jour dans les fichiers .HTML, .json, .ts ne seront pas reflétées.

1
Valerie

Cela est dû au cache stocké par le navigateur. Avant d'exécuter votre application, vous pouvez supprimer le cache et les cookies stockés par votre navigateur.

0
Siddharath Gupta

Définissez les en-têtes de réponse HTTP pour qu'ils expirent le contenu via le gestionnaire IIS.

  1. Ouvrez le module HTTP Response Headers pour votre application Web
  2. Cliquez sur Définir les en-têtes communs dans le volet Actions.

 Set HTTP Response headers to expire

https://www.iis.net/configreference/system.webserver/staticcontent/clientcache

0
Prasad De Silva