2014-10-27 5 views
-1

Каждый раз, когда я вношу изменения в код на моем сайте angularjs, они вступают в силу, пока пользователь не нажмет кнопку обновления. Даже если я выйду на страницу, которая не является угловой, тогда войдите в нее, это тот же старый код, пока я не нажму кнопку обновления. Поэтому, если кто-то входит в систему, это то же самое, что и в последний раз, когда они вошли в систему независимо от изменений, и я, очевидно, не могу ожидать, что они будут обновлять каждый раз при каждом входе в систему.Изменения кода не вступают в силу до тех пор, пока не будет нажата кнопка refresh/reload.

Так что мой вопрос: как я могу принудительно обновить кода. Я не хочу использовать window.reload или что-то в этом роде, если есть специальный угловой способ выполнить это. Я попытался очистить кеш шаблона, но он не работает. Это то, что я пробовал:

.run(function($rootScope, $templateCache) { 
    $templateCache.removeAll(); 
    $rootScope.$on('$routeChangeStart', function(event, next, current) { 
     if (typeof(current) !== 'undefined'){ 
      $templateCache.remove(current.templateUrl); 
     } 
    }); 
}) 
+0

Извини, но это @ Брайан является й/у вопроса. Я думаю, что ваш вопрос должен быть следующим: «Почему мои изменения не обновляются, если я не перезагружаю страницу?» Потому что это твоя настоящая проблема. – Josep

+0

Почему вы не используете '$ location.path (« ГДЕ ВЫ ХОТИТЕ ПОЙТИ »);' –

+0

Там счастливы? Теперь у вас есть ответ или вы просто хотели исправить мой титул? – Brian

ответ

1

Моя проблема оказалась файлом кеширования браузера js. Я не думал, что это будет проблемой, потому что до использования angularjs у меня никогда не было этой проблемы. Поэтому, чтобы исправить проблему, я нашел это: How to force browser to reload cached CSS/JS files? и немного изменил его, поэтому мне не пришлось использовать всю переписывание URL.

Я добавил функцию PHP

function get_version($file){ 
    return filemtime($_SERVER['DOCUMENT_ROOT'] . $file); 
} 

Тогда где я связываю мои сценарии, которые я использую:

<script src="/path/to/script.js?<?php echo get_version('/path/to/script.js');?>"></script> 
+0

+1 Я рад, что вы нашли решение! – Josep

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