我能够很好地缓存本地文件(图像,js等)。
理想情况下,我希望能够指向远程资源,例如存储在Azure上的blob存储中的.mp4,并缓存该资源。那可能吗?
我的日志中没有发现任何错误,但我也没有看到它被下载,因为它在Chrome浏览器下的应用缓存中不可用 - >资源小组。
我的清单:
CACHE MANIFEST
# Init 11-24-15
index.html
### Images
img/Night-Trap-32x-Front.jpg
/img/icons/Bathroom.jpg
/img/icons/Bedroom.jpg
/img/icons/Driveway.jpg
/img/icons/Entry-Way.jpg
/img/icons/Hall-1.jpg
/img/icons/Hall-2.jpg
/img/icons/Kitchen.jpg
/img/icons/Living-Room.jpg
/img/icons/trap-icon.gif
img//stills/BATHROOM_1.jpg
img//stills/BEDROOM_1.jpg
img/stills/DRIVEWAY_1.jpg
img/stills/ENTRY-WAY_1.jpg
img/stills/HALL-ONE_1.jpg
img/stills/HALL-TWO_1.jpg
img/stills/KITCHEN_1.jpg
img/stills/LIVING-ROOM_1.jpg
### JS
js/vendor/bootstrap.min.js
bower_components/video.js/dist/video.js
js/vendor/mainloop/mainloop.js
bower_components/object.observe/dist/object-observe-lite.min.js
js/appCacheValidation.js
# THESE DO NOT SEEM TO BE CACHED
https://nighttrapblob.blob.core.windows.net/ntvids/hallOne/00000021.mp4
https://nighttrapblob.blob.core.windows.net/ntvids/hallOne/00130422.mp4
https://nighttrapblob.blob.core.windows.net/ntvids/hallOne/01152221.mp4
https://nighttrapblob.blob.core.windows.net/ntvids/hallOne/02500221.mp4
https://nighttrapblob.blob.core.windows.net/ntvids/bedroom/00000081.mp4
NETWORK:
*
这就是我记录发生情况的方法:
// App cache validation
var appCache = window.applicationCache;
if (appCache === null || undefined) {
console.log("App cache does not exist");
}
appCache.addEventListener('checking', function(event) {
console.log("Checking for updates.");
}, false);
appCache.addEventListener('error', function(event) {
if (navigator.onLine === true) { //If the user is connected to the internet.
//alert("Error - Please contact the website administrator if this problem consists.");
console.log("Error - Please contact the website administrator if this problem consists.");
} else {
//alert("You aren't connected to the internet. Some things might not be available.");
console.log("You aren't connected to the internet. Some things might not be available.");
}
}, false);
appCache.addEventListener('downloading', function(event) {
console.log("Started Download.");
}, false);
appCache.addEventListener('progress', function(event) {
console.log(event.loaded + " of " + event.total + " downloaded.");
}, false);
appCache.addEventListener('cached', function(event) {
console.log("Cached assets -- Done.");
}, false);
appCache.addEventListener('updateready', function() {
console.log("New resources are available for download -- update ready");
}, false );
appCache.addEventListener('obsolete', function(event) {
console.log("Obsolete - no resources are cached, and previous cache(s) are now deleted.");
}, false);
答案 0 :(得分:0)
我解决了。有点狩猎,但是你走了:
您可以通过类似Web作业的方式将缓存控制应用于容器中的所有blob。 TurboGears有一个很好的例子,说明如何做到这一点,并包含两个步骤:
我只想在一些视频上对此进行测试,以确保自己安全地创建脚本的时间,所以在这里一步一步。我只是登录到我的Azure门户网站,转到我正在服务的.mp4s的blob存储容器中,并且必须单独编辑它们。我单击每个视频,编辑属性,然后设置Cache-Control属性的值。 (例如 public,max-age = 300000 ),其中max-age指定表示将被视为新鲜的最长时间。
This Stack Overflow post非常了解其博客上可用于缓存控制的不同属性。