AngularJ의 특성(또는 브라우저 자체의 캐시?)으로 인해 Angular의 기본 HTML 템플릿 로딩이 캐시됩니다. 결과적으로 템플릿을 수정할 때마다 브라우저가 최신 HTML 템플릿을 얻을 수 있도록 브라우저의 캐시를 지워야 하는 경우가 많습니다. 직접 테스트하는 것은 좋지만 서버의 템플릿 콘텐츠가 업데이트되면 사용자는 이를 수행하지 못합니다. 모두 협조해주세요. 브라우저 캐시를 삭제하세요. 그래서 이것은 정말 큰 문제입니다. 이번 글에서는 주로 AngularJs에서 템플릿 캐싱을 비활성화하는 방법을 소개합니다.
app.config(function($routeProvider, $locationProvider) { $routeProvider .when('/Book/:bookId/ch/', { templateUrl: 'chapter.html', controller: 'ChapterController' }); });
방법 1: 템플릿 파일 경로 뒤에 타임스탬프(또는 다른 임의의 숫자)를 추가하여 AngularJ가 매번 서버에서 새 템플릿을 로드하도록 합니다
app.config(function($routeProvider, $locationProvider) { $routeProvider .when('/Book/:bookId/ch/', { templateUrl: 'chapter.html' + '?datestamp=' + (new Date()).getTime(), controller: 'ChapterController' }); });
그러나 이것은 방법이 너무 보기 흉합니다. . . .
방법 2: $templateCache를 사용하여 캐시 지우기
// 禁止模板缓存 app.run(function($rootScope, $templateCache) { $rootScope.$on('$routeChangeStart', function(event, next, current) { if (typeof(current) !== 'undefined'){ $templateCache.remove(current.templateUrl); } }); });
라우팅 주소를 구성한 후 app.config 뒤에 이 코드를 추가하여 AngularJ가 templateUrl을 캐싱하는 것을 방지하세요.
관련 권장 사항:
AngularJS에서 드롭다운 상자의 고급 사용법에 대한 자세한 소개
위 내용은 AngularJs에서 템플릿 캐싱을 비활성화하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!