Bezdepbonusu7Программирование: статьи и ответы

Вопрос

Apache хранит кеш файла js

Автор вопроса: Siddharth SharmaОтветов: 1

Я обновил внешний интерфейс веб-приложений, встроенный в angularjs, на удаленном сервере, размещенном в стойке, на сервере уже есть предыдущая версия того же веб-приложения, которое было загружено мной за день до этого обновления. Загрузка была сделана локальным (git push) -> bitbucket -> удаленным сервером (git pull). После загрузки я перезагрузил веб-страницу в firefox, но она все еще загружала предыдущую версию, я попробовал то же самое в частном окне firefox и новом хромированном окне, но она все еще загружала предыдущую версию. Я пробовал эти вещи:

1) Для загрузки я использовал ,

 git add --all
 git commit -m "my commit"
 git push origin master

здесь источником был URL-адрес репозитория битбакета моего веб-приложения. Затем на сервере я сделал

git fetch

git reset --hard origin/master

Это хорошо работает для меня каждый раз, и файлы php обновляются сразу после загрузки файлов, но использовалась старая версия файла angularjs или js.

2) Я проверил, был ли обновлен файл ManagerService.js на битбакете, чтобы убедиться, что git push работает хорошо, и на битбакете есть новая версия файла.

3) Я проверил файл на сервере с помощью VIM, и файл ManagerService.js имеет новый обновленный код на сервере.

4) Я загрузил URL-адрес ManagerService.js, указав абсолютный URL-адрес (например, www.example.com/js/services/ManagerService.js) файла на моем телефоне, и все же был использован старый файл. К настоящему времени я был совершенно уверен, что это происходит из-за того, что Apache создает кеш моего js-файла, поэтому я погуглил и запустил эту команду на терминале моего сервера, как указано в этом URL-адресе ( http://www.ubuntugeek.com/how-to-clear-cached-memory-on-ubuntu.html а> )

sync; sudo echo 3 > /proc/sys/vm/drop_caches

5) Я также изменил последовательность строк, которые я изменил в ManagerService.js, и снова сделал загрузку.

Но до сих пор нет успеха. Наконец я клонировал проект в новый каталог, и он работал хорошо. Если на этот раз я столкнусь с той же проблемой, что мне делать, чтобы получить новый обновленный файл.

  • I loaded the url of the ManagerService.js by giving the absolute url of the file in my phone and still the old file was served ... похоже, ваш телефон кэширует предыдущую версию JS-файла. Tim Biegeleisen 21.09.2015
  • @TimBiegeleisen: я загрузил файл с абсолютным URL-адресом, example.com/js/services/managerService.js в закрытых окнах / окнах инкогнито Chrome и Firefox, и все же старый файл был загружен. Как вы думаете, может ли apache создавать кеш файлов js? Siddharth Sharma 21.09.2015
  • Я думаю, что браузер может создавать кеш. Попробуйте очистить кэш браузера в Chrome и Firefox и посмотреть, что произойдет. Кстати, ваши команды Git выглядят нормально, по крайней мере, на первый взгляд. Tim Biegeleisen 21.09.2015
  • Похоже, это проблема с кешем вашего локального браузера, и мы сами сталкивались с этим несколько раз. Продолжайте с Ctrl + Shift + Del и попробуйте перезагрузить страницу. Manish Kr. Shukla 21.09.2015
  • Для тех, кто сталкивается с подобными проблемами, я думаю, что это был просто продвинутый случай кеша. У меня был установлен инструмент веб-разработчика, и этим был отключен кеш. В моем телефоне я, скорее всего, получал файл, который хром сохранил с моего рабочего стола. Если вы столкнулись с подобной проблемой, попробуйте очистить кеш вручную. Siddharth Sharma 26.09.2015

servercachingangularjsapache

Ответы

Ответ 1 · Arun Shinde

Я думаю, что Rackspace обслуживает ваш статический контент через CDN. Проверьте, есть ли что-нибудь, чего вы можете избежать. Я столкнулся с теми же проблемами в среде Google App Engine. Изменение имени файла и развертывание приложения решит вашу проблему.

Перевод вопроса и ответов сообщества Stack Overflow, лицензия CC BY-SA. Оригинал на Stack Overflow.

Похожие материалы