我想在我的MEAN应用中使用HTML5应用缓存,但我无法在Firefox 36中使用它。它可以按预期在Chromium中使用。这是我的文件结构:
client
app.js
manifest.appcache
views/
index.html
about.html
server.js
的index.html:
<!DOCTYPE html>
<html manifest="/manifest.appcache">
<head>
<meta charset="UTF-8">
</head>
<body>
<a href="views/about.html">About</a>
</body>
</html>
manifest.appcache:
CACHE MANIFEST
#0
CACHE:
views/about.html
app.js
server.js:
var http = require("http");
var express = require("express");
var app = express();
app.get("/manifest.appcache", function (req, res) {
res.set("Content-Type", "text/cache-manifest");
res.set("Cache-Control", "no-store, no-cache");
res.set("Expires", "-1");
res.sendFile("/client/manifest.appcache", {root: __dirname});
});
app.get('/', function (req, res) {
res.sendFile('/client/views/index.html', {root: __dirname});
});
app.use(express.static(__dirname + '/client', { maxAge: 31557600000 }));
app.listen(8080);
当我转到localhost:8080时,Firefox成功获取清单(在开发工具的网络选项卡中不可见),但它不会将文件存储在应用缓存中(首选项 - 高级 - 网络显示0字节) 。它从标准系统缓存加载它们(我得到304)。
我怀疑我的路由以某种方式破坏了manifest.appcache中的链接,但我不得不阻止清单本身被缓存。我不是Node.js的专家,我对Chromium和Firefox表现不同的事实感到困惑。任何帮助将不胜感激。