node.js - 如何使用 list Node.js 站点进行缓存

标签 node.js cache-manifest

关于我的 early question关于如何在 node.js 中添加 list 缓存,我现在的问题是如何缓存 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");
});

Found at stackoverflow

最佳答案

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

你基本上是在指导客户:

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

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

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

关于node.js - 如何使用 list Node.js 站点进行缓存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9092253/

相关文章:

javascript - 如何在 node.js 中创建自定义异步函数?

ios - 如何使用 WKWebView 执行 list 请求

node.js - 如何用html替换jade

node.js - 根据日期获取预订数量

HTML5 离线 list 停止缓存声明的页面

google-chrome - 如何清除 Google Chrome iPad 应用程序上的应用程序缓存?

android - Android 可以离线缓存带有缓存 list 的 HTML5 视频吗?

html - 使 HTML5 应用程序可离线使用

node.js - 如何在 Sequelize 中用 "in"制作 "subquery"?

node.js - 实时编辑失败并显示 "CLOUD_CONTROLLER_URL is not set in the env"