Подтвердить что ты не робот

Изменения кода angularjs не отображаются после обновления браузера

В любое время я делаю изменения кода в файле .hmtl или .js, браузер по-прежнему отображает старый код, а мои новые изменения кода не отображаются в результатах браузера.

Например, я добавляю следующие 2 строки кода в файл .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>

Затем я делаю следующее:

  • В VS2013 щелкните правой кнопкой мыши мой проект и просмотрите его в браузере (IE или Chrome).
  • Войдите в мое приложение.
  • Перейдите на соответствующую страницу, и я вижу рендеринг старого html файла. Я не вижу вновь добавленных 2 элементов div.
  • Я даже ударил f5, чтобы обновить браузер, но все равно не повезло.

Что я делаю неправильно?

4b9b3361

Ответ 1

Нажмите F12 в своем браузере, чтобы открыть Инструменты разработчика. Отключите кеш. Перезагрузите страницу.

Ответ 2

Помимо использования инструментов Dev, чтобы убедиться, что кеш отключен, вы можете отредактировать файл Web.config и сообщить IIS, чтобы он не кэшировал ваши файлы Angular:

<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>

Мой Angular корневой каталог app/. Вам может потребоваться изменить в соответствии с вашей файловой структурой.

Ответ 4

TypeScript только!

В tsconfig.json добавить...

"compileOnSave": true, 

Ответ 5

Откройте devTools в chrome и выберите вкладку "Сеть", "Вкладка" Сеть ". Отключите" Отключить кеш "и перезагрузите страницу.

Ответ 7

Для меня ни один из предыдущих ответов не работал. Я использовал Chrome, и единственным способом, с помощью которого я мог просматривать это обновление, было открытие окна инкогнито. Мое обычное окно браузера по какой-то причине просто не получит последние активы.

Я попытался очистить свой кеш, отключить кеш на devtools и жестко обновить, но безрезультатно. Единственный способ, которым я смог это исправить, - очистить кеш DNS. Здесь ссылка с более подробной информацией:

Как очистить кеш DNS на компьютерах и веб-браузерах


Используя командную строку, вот как вы это делаете:

Windows 7 и более ранние

ipconfig /flushdns

Windows 8

ipconfig /flushdns

OSX (Yosemite, El Capitain и Sierra)

sudo dscacheutil -flushcache
sudo killall -HUP mDNSResponder

Ответ 8

Вам нужно изменить переменную окружения aspnetcore от производства до разработки. На официальном сайте :

... установить переменную среды, чтобы сообщить ASP.NET для запуска в режиме разработки:

  • Если вы используете PowerShell в Windows, выполните $Env: ASPNETCORE_ENVIRONMENT = "Разработка"
  • Если вы используете cmd.exe в Windows, выполните setx ASPNETCORE_ENVIRONMENT "Разработка", а затем перезапустите свою командную строку, чтобы изменения вступили в силу.
  • Если вы используете Mac/Linux, выполните экспорт ASPNETCORE_ENVIRONMENT = Development

Если вы находитесь в Linux, вам, возможно, придется делать это как суперпользователь. то есть.

sudo export ASPNETCORE_ENVIRONMENT=Development

Значение переменной может вернуться к Production после повторной загрузки. Если вы хотите работать с несколькими средами, я предлагаю вам определить их в файле 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"
         }
       }
     }  
   }

Прочитайте о средах здесь:

Ответ 9

Проблема

  • Клиентское (обозревательское) кэширование статических файлов в dev enviornment
  • Кэширование статических файлов на стороне сервера (IIS Express) в dev enviornment

Решение

For Client-side (Browser) caching of static files in dev enviornment

  • Web.Config/ApplicationHost.config Approch: подход Web.config предложенный @NateBarbettini выше. Обратите внимание, что этот подход также может применяться к "Applicationhost.config" вместо web.config файл.
  • "Всегда обновлять с сервера" в IE, как было предложено выше, @Phil Degenhardt. Ниже приведен снимок экрана. введите описание изображения здесь
  • Перейдите к местоположению исходного файла в адресной строке браузера. Попробуйте перейти к указанному файлу JavaScript, набрав адрес. Он покажет вам содержимое файла JavaScript. После этого файл будет обновлен. Поэтому вы можете снова вернуться и попытаться перейти к правильной целевой странице вашего приложения. На этот раз вы увидите, что вы получите последний код JavaScript, который будет выполнен. например Если у вас возникли проблемы с обновлением "app/home/home-account.js". Затем в браузере перейдите к 'http://[your-host/localhost]:[specified port of your application]/app/home/home-account.js. Это покажет вам содержимое. Затем снова перейдите к домашней странице вашего приложения, то есть в этом случае 'http://[your-host/localhost]:[specified port of your application]/'

For Server-side (IIS-Express) caching of static files in dev enviornment

  • посетите служебную программу командной строки appcmd IIS Express. В моем случае appcmd находится в "C:\Program Files (x86)\IIS Express\appcmd.exe" этот путь. Затем используйте команды SITE list и SITE delete для удаления временных файлов, кэшированных в iisexpress.

  • Существует также одно решение, которое относится к IE, упомянутому здесь: Visual Studio 2013 кэширует старую версию файла .js

Ответ 10

Это происходит из-за того, что кеш хранится в браузере. Перед запуском приложения вы можете удалить кеш и файлы cookie, хранящиеся в вашем браузере.

Ответ 11

Установить заголовки HTTP-ответа для истечения срока действия содержимого через диспетчер IIS.

  • Откройте HTTP-ответные заголовки для веб-приложения
  • Нажмите Установить общие заголовки на панели Действия

Установить заголовки HTTP-ответов на срок действия

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