关于我早期如何在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 处发现
缓存清单列出了应该缓存的URL。访问这些url的客户端不知道这些url是Apache上的静态html文件,还是node.js或其他任何东西生成的动态内容。
你基本上是在指导客户:
- 阅读我的URL列表
- 浏览每个url
- 下载响应并将其存储在安全的地方
- 检查我的cache.manifest是否已更改,然后继续执行步骤1
因此,只要node.js生成的数据可以通过URL访问,那么将其定义为缓存清单中的一行就没有问题。
如果您担心"我怎么知道有哪些URL",您可以始终从node.js本身以编程方式生成cache.manifest文件,但请记住提供正确的内容类型text/cache-manifest