I have created application using backbone in front-end and node.js in back-end. for that I have written following code in my app.js at server.
var express = require('express'),
http = require('http'),
fs = require('fs'),
RedisStore = require('connect-redis')(express);
var app = express();
var server = require("http").createServer(app);
app.set('port', process.env.PORT || 3001);
app.set('views', __dirname + '/views');
app.set('view engine', 'jade');
app.use(express.compress());
app.use(express.json());
app.use(express.methodOverride());
app.use(express.cookieParser('secret'));
app.use(express.session({ secret: "secret", store: new RedisStore({ client: redisCli, maxAge: 604800000 }), cookie: {maxAge:604800000} }));
app.use(everyauth.middleware(app));
app.use(function (req, res, next) {
res.removeHeader("X-Powered-By");
next();
});
app.use(app.router);
app.use(express.static(path.join(__dirname, '/public')));
app.get('/', function (req, res) {
res.header('Cache-Control', 'max-age=60, must-revalidate, proxy-revalidate');
res.contentType('text/html; charset=utf-8');
res.header('Expires', 'Wed, 30 Apr 2008 06:30:00 GMT'); //Note: Here I clearly mentioned that, No cache at client side. get fresh page every time.
res.sendfile(__dirname + '/index.html', function (err) {
if (err) {
console.log('\r\n ' + new Date().toString() + ' - index.html : ' + err + ' \r\n ');
res.json({ error: 'Page Not Found' }, 404);
}
});
});
Please look at my root (e.g."/") carefully, there I have clearly mentioned old date in "Expires", so I think no cache done of my 'index.html' page on client browser. and It is working fine if, "Continue where you left off" option is off in setting in chrome browser. That means when ever I heat "www.mydomain.com" in chrome browser, it's get new "index.html" page from server. (new request comes on my server), but If "Continue where you left off" option is on, and when I starts browser, no request is come on my server. It is also happens when I select this url from addressbar's history, no request comes at server. If I check this thinks via "developer tool", its say me that my "index.html" page is served from catch. I don't know what is happening and how to prevent it. If someone got any solution, or identify problem, let me know. Thanks.