【问题标题】:application cache & 404/500 pages应用程序缓存和 404/500 页面
【发布时间】: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 的响应代码)正在触发回退。它们的行为就像服务器离线一样。

我的问题有两个:

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

触发它。

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

NETWORK:
*
/404.html
/500.html

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

谢谢!

【问题讨论】:

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

标签: html http-status-code-404 html5-appcache application-cache


【解决方案1】:

什么对我有用:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-03-11
    • 1970-01-01
    • 2012-05-18
    • 2013-02-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多