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

Я обновил внешний интерфейс веб-приложений, встроенный в 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, и снова сделал загрузку.

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


person Siddharth Sharma    schedule 21.09.2015    source источник
comment
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-файла.   -  person Tim Biegeleisen    schedule 21.09.2015
comment
@TimBiegeleisen: я загрузил файл с абсолютным URL-адресом, example.com/js/services/managerService.js в закрытых окнах / окнах инкогнито Chrome и Firefox, и все же старый файл был загружен. Как вы думаете, может ли apache создавать кеш файлов js?   -  person Siddharth Sharma    schedule 21.09.2015
comment
Я думаю, что браузер может создавать кеш. Попробуйте очистить кэш браузера в Chrome и Firefox и посмотреть, что произойдет. Кстати, ваши команды Git выглядят нормально, по крайней мере, на первый взгляд.   -  person Tim Biegeleisen    schedule 21.09.2015
comment
Похоже, это проблема с кешем вашего локального браузера, и мы сами сталкивались с этим несколько раз. Продолжайте с Ctrl + Shift + Del и попробуйте перезагрузить страницу.   -  person Manish Kr. Shukla    schedule 21.09.2015
comment
Для тех, кто сталкивается с подобными проблемами, я думаю, что это был просто продвинутый случай кеша. У меня был установлен инструмент веб-разработчика, и этим был отключен кеш. В моем телефоне я, скорее всего, получал файл, который хром сохранил с моего рабочего стола. Если вы столкнулись с подобной проблемой, попробуйте очистить кеш вручную.   -  person Siddharth Sharma    schedule 26.09.2015


Ответы (1)


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

person Arun Shinde    schedule 23.03.2016