2017-01-29 5 views
1

У меня есть сайт с использованием угловых и бутстрапов. Проблема заключается в кэше в клиентском браузере. Я отправляю что-то ... клиент получает старые вещи из кеша. Я использую angular-ui-router-0.3.1 для маршрутизации.страницы маршрута кэша отключены

Я использую кеш: false, в $ stateProvider, но ничего.

Здесь индекс, который я использую для маршрутизации HTML страниц:

<!DOCTYPE html> 
<html lang="en" ng-app="mainApp"> 
<head>  
<meta http-equiv="expires" content="0"> 
<meta http-equiv="cache-control" content="no-cache, must-revalidate, post-check=0, pre-check=0"> 
<meta http-equiv="pragma" content="no-cache"> 
... 
</head> 
<body> 
<div ui-view></div> 
</body> 
</html> 

и app.js:

var app = angular.module('mainApp', ['ui.router','angularUtils.directives.dirPagination']); 
app.config(function($stateProvider, $urlRouterProvider) { 
$stateProvider 
    .state('index', { 
     cache: false, 
     url: '/', 
     templateUrl: 'pages/main.html' 
    }) 
    .state('presentation', { 
     cache: false, 
     url: '/presentation', 
     templateUrl: 'pages/presentation.html' 
    }) 
    .state('about', { 
     cache: false, 
     url: '/about', 
     templateUrl: 'pages/about.html' 
    }) 
    ... 
    $urlRouterProvider.otherwise('/'); 
    }); 

Большой проблемой является, например, когда я обновить представления страницы в клиент не получает обновления.

Что мне делать, чтобы заставить загружать страницу маршрута, даже если она хранится в кеше ??? Или, как сказать браузер клиента, не кэшировать страницы маршрута?

ответ

1

Шаг 1: Создайте переменную в вашей конфигурации, которые будут использоваться в качестве строки запроса, например:

var version = 1.01; 

Затем измените все ваши templateUrl так:

templateUrl: 'pages/main.html?v=' + version 

Каждый раз, когда вы нажмите новую версию для производства, обновите переменную version. Это должно заставить браузер перезагрузить шаблоны, поскольку он не знает, что представляет собой новая строка.

Шаг 2: Если вы хотите, чтобы заставить перезагрузки главной страницы, здесь минимальные требования, чтобы удовлетворить все браузеры:

<meta http-equiv="Cache-Control" content="no-cache, no-store, must-revalidate" /> 
<meta http-equiv="Pragma" content="no-cache" /> 
<meta http-equiv="Expires" content="0" /> 
+0

я заметил кое-что ... если в кэш версия 1.9 и на сервере - версия 1.13, загружает версию кеша 1.9. Зачем??? – calin24

+0

Вам нужно убедиться, что вы используете теги meta, чтобы перезагрузить главную страницу, и браузер видит последнюю версию. Возможно, вам придется сначала обновить его, если вы впервые добавляете теги meta. – sh0ber