Ответ 1
Думаю, я действительно понял ответ на этот вопрос. Что вы можете сделать, так это создать перехватчик. Поскольку все запросы с ng-include действительно проходят через общий $httpProvider, вы можете перехватить запрос и добавить кэш-буфера.
app.factory( "cacheBusterFactory", [ "VERSION", function( VERSION ) {
return {
request: function( config ) {
if( config.url.indexOf( ".html", config.url.length - ".html".length ) !== -1 ) {
config.url += "?v=" + VERSION.toString();
}
return config;
}
};
} ] );
"ВЕРСИЯ" в этом случае является константой angular, которую я изменяю при каждом развертывании:
app.constant( "VERSION", 0.1 );
И добавление кэша-битера так же просто, как:
.config( [ "$httpProvider", function( $httpProvider ) {
$httpProvider.interceptors.push( "cacheBusterFactory" );
} ] )
Как вы можете видеть, я только перехватываю .html файлы, так как это единственные, что мне нужно для добавления кэша. Разумеется, вы могли бы расширить или перестроить "cacheBusterFactory" в соответствии с вашими потребностями.