2015-04-20 3 views
3

Я разрабатываю большой angular.js/mvc webapi SPA, который находится в частных сетях. Когда я устанавливаю новую версию приложения на сайт клиента с помощью установщика, программное обеспечение браузера клиента просто продолжает работать с старым модулем даже во время входа/выхода из системы. Браузер просто использует кэшированную версию основного модуля приложения.Как заставить обновление файла углового модуля при обновлении версии

В прошлом на других платформах, таких как ASP.NET, я использовал веб-службу, которая публикует версию, и добавила? Version = 123 к каждому запросу ресурса javascript, чтобы заставить клиентскую версию оставаться на date, независимо от того, насколько агрессивно клиентский браузер кэширует файлы javascript.

Что является лучшей стратегией для решения этой проблемы в одностраничном приложении, которое остается в памяти. Если я ударил веб-сервис в угловом режиме, как я могу обойти поставщика маршрутов и просто заставить его перезагрузить фактический файл javascript, на котором размещен основной модуль приложения?

Какую стратегию устанавливают разработчики веб-приложений в угловом пространстве, чтобы решить эту проблему?

ответ

1

У меня пока нет 50 репутационных очков, поэтому я не могу комментировать, и я оставляю это как ответ.

В нашем проекте мы используем TeamCity для развертывания веб-приложений, и мы используем консольное приложение, которое выполняется на этапе развертывания. Консольное приложение использует T4 template для преобразований index.html при каждом развертывании. Это как мы добавляем параметр версии к URL-адресу скрипта. T4 templates может быть заменен двигателем razor или любой другой технологией.

Другим подходом является использование ASP.NET только для получения основного вида, но я предпочитаю не включать ASP.NET в веб-приложение только для одной простой задачи.

Тем не менее, я считаю, что наше решение выглядит слишком тяжелым, и это интересно, есть ли еще более простое решение.

+0

У нас закончилась версия http API, которая периодически проверяется пользовательским интерфейсом. Если версия сервера изменяется от того, что находится в области видимости, мы вынуждаем перезагрузку через javascript. – user1082202

+1

И теперь у нас есть концентратор webapi SignalR, который толкает его. – user1082202

Смежные вопросы