应用程序缓存和 404/500 页面

Posted

技术标签:

【中文标题】应用程序缓存和 404/500 页面【英文标题】:application cache & 404/500 pages 【发布时间】:2012-02-29 12:29:47 【问题描述】:

我有一个类似这样的清单:

CACHE MANIFEST
# e4a75fb378cb627a0d51a80c1cc5684c2d918d93e267f5854a511aa3c8db5b1a
/a/application.js
/a/application.css

NETWORK:
*

FALLBACK:
/ /offline/redirect

问题是我的 /404.html 和 /500.html 页面(显然提供了 404 和 500 的响应代码)正在触发回退。它们的行为就像服务器离线一样。

我的问题有两个:

    为什么 /404.html 会触发回退,而 /events 不会? 如何允许 /404.html 和 /500.html 不触发回退,同时仍然允许 /

触发它。

对于它的价值,我已经尝试过这个:

NETWORK:
*
/404.html
/500.html

...但是,由于这些页面是使用非 200 响应代码提供的,因此它会触发应用缓存错误回调并且不会保存缓存。

谢谢!

【问题讨论】:

FWIW,不仅仅是 404 和 500 页,它是任何返回 400+ 响应代码的路线/方法/动作/任何东西。因此,像 /teams/1241231 这样的“团队”不存在,应该呈现一个带有 404 代码的 404 页面 - 但它被 FALLBACK 拾取。 嗨。您终于设法为此找到解决方案了吗?我遇到了同样的问题:当我应该收到 403 时获取后备页面作为响应。建议的“总是返回 200”的解决方法对我来说不是解决方案。 【参考方案1】:

什么对我有用:

从 NETWORK 声明中删除 * 重定向到 /404.html(等)而不是原地呈现。

所以使用上面的例子:/teams/1241231 302 重定向到/404.html,它返回一个 404 状态码。

【讨论】:

以上是关于应用程序缓存和 404/500 页面的主要内容,如果未能解决你的问题,请参考以下文章

nginx设置404 500页面跳转至首页,K哥

服务器常见页面访问返回错误信息(404 500 400)表示啥意思

服务器常见页面访问返回错误信息(404 500 400)表示啥意思

Tomcat更改错误页面指向,改变404,500错误页面

bug整理-404,500

web项目错误页面友好处理404,500等