Express.js + HTML5 appcache在Firefox中不起作用

时间:2015-03-14 18:09:59

标签: node.js firefox express html5-appcache

我想在我的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表现不同的事实感到困惑。任何帮助将不胜感激。

0 个答案:

没有答案