angularjs IE缓存拦截器有效,但破坏了指令
angularjs IE Cache buster works, but breaks directive
我在IE缓存所有内容时遇到了问题,所以如果我切换用户,我仍然会看到来自不再登录的旧用户的数据。
我尝试了这个解决方案(位于:Angular IE Caching issue for$http),它起了作用,但现在我的指令无法获得所需的模板,我如何才能让这两件事都起作用?
代码:
app.config(['$httpProvider', function ($httpProvider) {
//initialize get if not there
if (!$httpProvider.defaults.headers.get) {
$httpProvider.defaults.headers.get = {};
}
console.log($httpProvider.defaults.headers.get['If-Modified-Since']);
//disable IE ajax request caching
$httpProvider.defaults.headers.get['If-Modified-Since'] = '0';
}]);
我的指令:
app.directive('commentsContainer', function (commentResource, signalRService) {
return {
restrict: 'EAC',
templateUrl: '/Templates/Directives/_Comments.html',
link: function ($scope) {
//CODE
}
}
编辑无论是哪种浏览器,它都会出现错误,这是chrome的错误:
GET http://localhost:58991/Templates/Directives/_Comments.html 400 (Bad Request)
Error: [$compile:tpload] Failed to load template: /Templates/Directives/_Comments.html
没有用于缓存的棱角分明的snippit,它工作得很好。。
希望你能帮忙!
在您提供的资源中,有两种可能的修复方法。
兰登评论中的第一个解决方案
If Modified Since标头使IIS+iisnode抛出400错误请求对于通过ngInclude和ngView加载的每个html文件。以下内容两个标题为我解决了这个问题(我从Chrome中提取了它们,没有缓存问题):
$httpProvider.defaults.headers.get['Cache-Control']="无缓存";$httpProvider.defaults.headers.get['Pagma']="无缓存";
lopisan 评论的第二个解决方案
If Modified Since="0"标头的使用破坏了Tomcat(问题具有解析标头日期,因为0不是有效值RFC)。固定使用值"Mon,Jul 26 GMT 05:00:00"。
相关文章:
- "工具提示"jQuery插件坏了
- 我的按钮坏了
- 节点JS:时间机器坏了——timekeeper.travel不做时间旅行
- HTML/JavaScript:为什么不'我的纽扣坏了
- 我的素数函数坏了,但我没有;我不知道为什么
- Uglifier是不是弄坏了我的睡衣
- 我升级了Knockout.js,现在我的模板坏了
- 为什么范围$手表坏了
- 所有的javascript都 ajax.aspnetcdn.com/ajax/ 坏了?打破所有外部引用?自周五以来
- 角度控制器功能坏了
- 谷歌可视化图表API示例坏了,如何修复它们
- 检查是否传递了指令属性
- 将Facebook应用程序移动到新服务器,现在它坏了
- 为什么我的代码坏了
- 野生动物园浏览器中的后退按钮坏了
- 砌体坏了(可能是经典)
- 旋转相机后,Three.js的skybox似乎坏了
- 角度模型放宽了指令中包含ng的范围
- 使用$scope$destroy解决了内存泄漏,但破坏了指令
- 验证不是't工作,现在我的网站也坏了