缓存清单的原因:应用程序缓存错误事件:资源获取失败(2)

10

我的清单文件一直都很正常,但今天早上开始在Chrome版本36.0.1985.143 m中出现以下错误。

Creating Application Cache with manifest https://localhost/static/app/cache.manifest dashboard:1
Application Cache Checking event dashboard:1
Application Cache Downloading event dashboard:1
Application Cache Progress event (0 of 192) https://localhost/static/app/images/ui-icons_454545_256x240.png dashboard:1
Application Cache Error event: Resource fetch failed (2) https://localhost/static/app/images/ui-icons_454545_256x240.png

当我按照链接时,资源是存在的。但是我无法找到任何详细说明 (2) 代表什么的地方(对于-1有很多解释,但对于(2)没有)。由于在处理缓存清单时这是我的一个陷阱之一,因此我拥有有效的https证书,不认为这是问题所在。

这是我的清单(由grunt生成,似乎有效)

CACHE MANIFEST
# This manifest was generated by grunt-manifest HTML5 Cache Manifest Generator
# Time: Wed Aug 20 2014 10:37:07 GMT+0200 (W. Europe Daylight Time)

CACHE:
fonts/JohnstonITCStd-Bold.eot
fonts/JohnstonITCStd-Bold.otf
fonts/JohnstonITCStd-Bold.svg
fonts/JohnstonITCStd-Bold.ttf
fonts/JohnstonITCStd-Bold.woff
fonts/JohnstonITCStd-BoldIta.eot
fonts/JohnstonITCStd-BoldIta.otf
fonts/JohnstonITCStd-BoldIta.svg
fonts/JohnstonITCStd-BoldIta.ttf
fonts/JohnstonITCStd-BoldIta.woff
fonts/JohnstonITCStd-Light.eot
fonts/JohnstonITCStd-Light.otf
fonts/JohnstonITCStd-Light.svg
fonts/JohnstonITCStd-Light.ttf
fonts/JohnstonITCStd-Light.woff
fonts/JohnstonITCStd-LightIta.eot
fonts/JohnstonITCStd-LightIta.otf
fonts/JohnstonITCStd-LightIta.svg
fonts/JohnstonITCStd-LightIta.ttf
fonts/JohnstonITCStd-LightIta.woff
fonts/JohnstonITCStd-Medium.eot
fonts/JohnstonITCStd-Medium.otf
fonts/JohnstonITCStd-Medium.svg
fonts/JohnstonITCStd-Medium.ttf
fonts/JohnstonITCStd-Medium.woff
fonts/JohnstonITCStd-MediumIta.eot
fonts/JohnstonITCStd-MediumIta.otf
fonts/JohnstonITCStd-MediumIta.svg
fonts/JohnstonITCStd-MediumIta.ttf
fonts/JohnstonITCStd-MediumIta.woff
images/ajax-loading.gif
images/angle-purpure.png
images/angle-red.png
images/angle-yellow.png
images/apple-touch-icon-114x114.png
images/apple-touch-icon-144x144.png
images/apple-touch-icon-57x57.png
images/apple-touch-icon-72x72.png
images/apple-touch-startup-image-2048x1496.png
images/background.jpg
images/bathroom.png
images/blocker-white.png
images/blocker.png
images/bottom-arrow.png
images/box-shadow-bg.png
images/btn-arrow-bottom.png
images/btn-close.png
images/btn-counter.png
images/btn-left-panel.png
images/btn-sidebar-left-open.png
images/btn-top-panel.png
images/calendar5.png
images/checkbox-big.gif
images/checkbox.gif
images/close-lightbox-button.png
images/copy-icon-dark.png
images/copy-icon.png
images/copy_button.png
images/correct8.png
images/customer_photo_card.jpg
images/customer_photo_lightbox.jpg
images/customer_photo_profile.jpg
images/customer_photo_sidebar.jpg
images/customer_photo_smallcard.jpg
images/dashboard-tab-active-bg.png
images/dashboard-tab-active-gray-bg.png
images/decor-1.jpg
images/decor-2.jpg
images/decor-3.jpg
images/decor-4.jpg
images/decor-arrow-bottom-gray.png
images/decor-item-bg-purpure.png
images/decor-item-bg-red.png
images/decor-item-bg-yellow.png
images/decor-item-bg.png
images/delete-icon-16x16.png
images/delete-icon-24x24.png
images/delete-icon-32x32.png
images/delete-icon-48x48.png
images/delete-icon-64x64.png
images/dialog-decor-purpure.png
images/dialog-decor-red.png
images/dialog-decor-yellow.png
images/dialog-decor.png
images/dialog-overlay.png
images/flag_icon_de.png
images/flag_icon_fr.png
images/flag_icon_it.png
images/flag_icon_uk.png
images/flight-big.png
images/flight-small.png
images/flight.png
images/form-dialog-bg.png
images/general_user_card.jpg
images/general_user_card.png
images/general_user_lightbox.jpg
images/general_user_profile.jpg
images/general_user_sidebar.jpg
images/general_user_smallcard.jpg
images/help-bg.png
images/ico-contact-group-1-small.jpg
images/ico-contact-group-1.jpg
images/ico-contact-group-2-small.jpg
images/ico-contact-group-2.jpg
images/icon-1.png
images/icon-2.png
images/icon-attention.png
images/icon-delete-big.png
images/icon-delete.png
images/icon-dragable.png
images/icon-mail-small.png
images/icon-mail.png
images/icon-minus.png
images/icon-mobile-small.png
images/icon-mobile.png
images/icon-pdf-small.png
images/icon-pdf.png
images/icon-phone-small.png
images/icon-phone.png
images/icon-plus.png
images/icon-power.png
images/icon-remove-big.png
images/icon-remove.png
images/icon-user.png
images/icon.png
images/icons-bg.png
images/icons-big-bg.png
images/icons-slider-arrow-left.png
images/icons-slider-arrow-right.png
images/icons-small-bg.png
images/icons-xsmall-bg.png
images/info6.png
images/line25.png
images/lock-close-icon.png
images/lock-open-icon.png
images/logo-small.gif
images/logo.png
images/outing.png
images/radio-big.png
images/remove11.png
images/search28.png
images/select-arrow-bg.png
images/select-dropdown-bg.png
images/select-sep-bg.gif
images/sep-1-bg.gif
images/signal_disabled_big.jpg
images/signal_disabled_small.jpg
images/signal_pause_big.jpg
images/signal_pause_small.jpg
images/signal_waiting_validation_big.jpg
images/signal_waiting_validation_small.jpg
images/sleep.png
images/sort27.png
images/sub-header-bg.png
images/sub-header-bottom-bg.png
images/temp-1.jpg
images/temp-10.gif
images/temp-2.jpg
images/temp-3.jpg
images/temp-4.jpg
images/temp-5.jpg
images/temp-6.jpg
images/temp-7.jpg
images/temp-8.png
images/temp-9.jpg
images/time-line-bg.gif
images/time-line-sep-bg.gif
images/tooltips-bg.png
images/top-arrow-gray.png
images/top-arrow-white.png
images/ui-bg_flat_0_aaaaaa_40x100.png
images/ui-bg_flat_0_eeeeee_40x100.png
images/ui-bg_flat_55_ffffff_40x100.png
images/ui-bg_flat_75_ffffff_40x100.png
images/ui-bg_glass_65_ffffff_1x400.png
images/ui-bg_highlight-soft_100_f6f6f6_1x100.png
images/ui-bg_highlight-soft_25_0073ea_1x100.png
images/ui-bg_highlight-soft_50_dddddd_1x100.png
images/ui-icons_0073ea_256x240.png
images/ui-icons_454545_256x240.png
images/ui-icons_666666_256x240.png
images/ui-icons_ff0084_256x240.png
images/ui-icons_ffffff_256x240.png
css/app-styles.min.css
javascripts/app/router_dashboard.js
javascripts/app/router_profile.js
javascripts/app/router_settings.js
javascripts/app/router_test.js
javascripts/distro/app-dashboard-built.js
javascripts/distro/app-profile-built.js
javascripts/distro/app-settings-built.js
javascripts/dispatch.js

NETWORK:
*

那么我的问题是,是否有人知道这个错误意味着什么以及如何修复它?

编辑:这个问题在一天之后自己消失了,但我不知道是什么引起了它或者我可能做了什么来修复它,我唯一做的操作是清除了我在chrome中的标记(试验性功能),但这并没有立即生效来消除这个错误。

以下是关于这个错误的一些其他事实:

  • 其他使用相同代码的开发人员没有看到这个错误(使用相同版本的chrome)(我知道这会导致一个糟糕的SO问题,如果它不能被重现,但我甚至不知道这个错误的含义,这是我提问的主要原因)
  • 这在开发版本和生产版本上都发生了(开发版本使用Apache,生产版本使用nginx)
  • 其他我知道使用应用程序缓存的网站没有出现这种情况(deezer.com)

编辑:截至2017年4月9日,我仍然没有找到这个错误的根本原因,也从未再次看到它。


我有同样的情况。我的清单缓存今天突然停止工作了。 - goerwin
我有和描述一样的问题。有没有什么机会解决这个问题,或者我必须像主题发起者描述的那样等待它自动解决? - tschoartschi
到目前为止,我仍然没有找到能够解决它的方法,自从问了这个问题后,我再也没有重现过这个错误来确认哪种方法有效。看起来黑魔法是最好的出路 :( - Quince
3个回答

11

我遇到了同样的问题,并发现两个原因:

  • 我在Chrome的无痕模式下使用它(应该在正常模式下使用)
  • 我的服务器返回了301重定向而不是200 OK(应该返回200 OK)

通过解决以上两个问题,我最终解决了这个问题。


我也是,但为什么隐身模式会成为问题呢? - Chet

1

我在Windows上的Chrome/36.0.1985.143以及最新的OSX Chrome中也遇到了同样的问题。

查看访问日志,对于所涉及的文件,服务器返回的状态码是200(OK),而不是403(未找到)。

根据我们所看到的情况,我认为“资源获取失败(2)”消息中引用的文件并不相关。

我们在第一个项目中就遇到了这个问题。

在我的情况下,我已经期望应用缓存是最新的,并且Apache应该返回HTTP状态码304(未修改),这样Chrome就知道文件是最新的。

因此,我认为我们可能都达到了限制,我们所看到的是一个副作用。

Quince,你的应用缓存清单看起来是有效的。我也想弄清楚这个问题,请提供更多细节好吗?我想知道你在清单中列出的文件的总大小。


发送前压缩的总大小为4Mb(加上一些非常小的变化),其中最大的是字体。实际上我不再看到这个错误了,但我还是把问题留在这里,因为我真的想知道最初是什么导致了这个问题。我已经添加了更多细节来回答我看到的可能有影响的问题。 - Quince
也许我在 chrome://flags/ 上的更改确实起了作用,但我认为任何我所做的修复都应该是立即可见的,但当我将它们全部重置为默认值时,并非如此。关于限制,当我查看 chrome://appcache-internals/ 时,我的使用量远低于一些网站(如 deezer),它们的使用量达到了9.7Mb。 - Quince
在我的情况下,我的文件总大小甚至不到1mb,但与@Quince一样遇到了同样的问题。 - goerwin

1

我遇到了与你之前评论中描述的完全相同的问题。最终,我通过完全重启Chrome(我通常让我的笔记本电脑和Chrome始终运行)来解决它。一旦我这样做了,问题就消失了。


很奇怪,我也重启了 Chrome,但问题并没有立刻消失,直到第二天才消失了。真是奇怪。 - Quince
不,我找不到任何与这个问题相关的信息。最奇怪的是,我已经好几天没有部署我的网站了,直到昨天才出现了这个问题,直到我重新启动了Chrome浏览器。 - goerwin
重启Chrome也解决了我遇到的这个问题。在这之前,我想尝试清除我的网站的应用程序缓存。我访问了chrome://appcache-internals/来进行操作,但Chrome告诉我“没有可用的应用程序缓存”,这完全出乎我的意料。重启Chrome后,我仍然看到了同样的“没有可用的应用程序缓存”消息,但我的应用程序缓存网站成功加载,并且可以在chrome://appcache-internals/中找到。我在想,实际上是Chrome在故障发生时自动丢失了我在浏览器中拥有的所有应用程序缓存。 - Robert Sinton

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接