Three JS Loaders don't work with Service Worker Cache

Um, the problem is that THREE.TextureLoader internally uses THREE.ImageLoader which uses HTML5 image API in order to load images. So there is actually no XHR call.

However, you can try to use THREE.ImageBitmapLoader instead since this loader actually uses the fetch API in order to load images from the backend. Notice that you have to manually create an instance of CanvasTexture in order to use the image bitmap as a texture. The workflow should be explained in the docs and in the following example:

https://threejs.org/examples/#webgl_loader_imagebitmap