AppCache Manifest Error

2020-08-10 08:35发布

问题:

Edit: I had to remove some links.

My manifest page seems to be causing errors on my web page. When you first go to the page everything appears to cache successfully, but upon refresh it fails to get files that exist.

I made a quick test page to check out, here.

Here is my manifest file.

This is a VERY dynamic site by php & javascript, I haven't got too much into appcache with those factors, so I'm unsure if the issue has to do with the fact that so much content has to be conditionally set in.

Any help would be greatly appreciated. NOTE: Java-Console will be needed (best used in Chrome).

UPDATE: It seems that if any file is, so much, as linked to a manifest file it receive GET errors.

The Java-Console for a page that is linking to an empty manifest (while online) reads the following, after successful caching:

> Creating Application Cache with manifest
> https://www.url.org/text/cache-manifest/manifest.appcache Application
> Cache Checking event Application Cache Downloading event JQMIGRATE:
> Logging is active Application Cache Progress event (0 of 0)
> Application Cache Cached event  GET
> https://www.domain.org/images/backgrounds/gradient.png net::ERR_FAILED
> GET https://www.domain.org/javascripts/pop_ups.js?_=1393453024093 GET
> https://www.domain.org/javascripts/jquery_plugins/jquery.placeholder.js?_=1393453024094

Warmth.

回答1:

I solved my own issue. I re-read some of the old articles that first taught me about appcache. Turns out it was Gotcha #5.

GOTCHA #5: NON-CACHED RESOURCES WILL NOT LOAD ON A CACHED PAGE If you cache index.html but not cat.jpg, that image will not display on index.html even if you’re online. No, really, that’s intended behaviour, see for yourself.

To disable this behaviour, use the NETWORK section of the manifest

CACHE MANIFEST
# v1index.html
NETWORK:
*

The * indicates that the browser should allow all connections to non-cached resources from a cached page. Here, you can see it applied to the previous example. Obviously, these connections will still fail while offline.

I added the following to my manifest & now everything is well. Woo-hoo.