7

关于如何在 node.js 中添加清单缓存的早期问题,我现在的问题与如何缓存 node.js 生成的 HTML 有关。由于我们没有像 php (index.php) 这样的物理文件,因此我们无法缓存此类文件。

我们如何缓存“不存在”的页面?只需添加缓存:

    CACHE MANIFEST

    CACHE:
    # plain files to cache
    /javascripts/client.js
    /stylesheets/style.css
    /stylesheets/style.styl
    # generated files like /
    /
    /content

知道如何解决这个问题吗?

谢谢!

解决方案:

添加路由器以返回具有正确 mime 类型的 cache.manifest 文件:

app.get("/offline.manifest", function(req, res){
  res.header("Content-Type", "text/cache-manifest");
  res.end("CACHE MANIFEST");
});

在stackoverflow上找到

4

1 回答 1

3

缓存清单列表应缓存的 URL。访问这些 url 的客户端不知道这些是 Apache 之上的静态 html 文件还是由 node.js 或其他任何东西生成的动态内容。

您基本上是在指导客户:

  1. 阅读我的网址列表
  2. 浏览每个网址
  3. 下载响应并将其存储在安全的地方
  4. 检查我的 cache.manifest 是否已更改,然后继续执行步骤 1

因此,只要您的 node.js 生成的数据可以通过 URL 访问,那么将其定义为缓存清单中的一行就没有问题。

如果您担心“我怎么知道有哪些 url”,您可以随时从 node.js 本身以编程方式生成 cache.manifest 文件——但请记住提供正确的内容类型text/cache-manifest

于 2012-02-01T07:51:08.580 回答