One thought I had was to have an "online" directory parallel to the "public" directory.  Files placed in "public" would be cached while files placed in "online" wouldn't be.

An unfortunate aspect is that there would need to be a network route to distinguish the non-cached files: for example, a file in "online" could appear at the "/online/file" URL.

> Another thing that might be good would be to automatically exclude large files from the app cache.

I don't think that would work... consider public/giant-image.png served from URL /giant-image.png.  Offline the fallback section would cause app HTML to be returned for "/giant-image.png".