我通过办公室网络服务器(node.js + express)提供SPA,但这些静态文件并非来自静态公用文件夹。网络服务器从另一台服务器获取信号,新的客户端可以下载。办公室服务器获取存档并将其提取到新文件夹(名称:client / clientxxxxx.zip_content /)。所有新连接都应该使用新文件夹,但旧文件夹必须使用他们在第一次连接时使用的版本。
我认为我在识别相同的用户/连接时遇到问题,因为SPA将是无状态的,我无法更改statice文件。 PHP具有会话自动(cookie中的id或get变量)。有表达的东西吗?以及如何提供来自不同主文件夹的所有文件?
我的简单解决方案:
使用HTML和子文件夹中的图片进行测试,它适用于express-session(Thx Alex)和简单的sendFile
。
app.use(session({
genid: function(req) {
return uuid.v4();
},
cookie: {
path: '/',
httpOnly: true,
secure: false,
maxAge: null
},
resave: true,
saveUninitialized: true,
secret: 'this is not a secret'
}));
app.get(['/','/:path*'], function (req, res, next) {
req.session.clientPath = req.session.clientPath || path.join(main.paths.client, main.versions.client + '_content');
var clientFile = path.normalize(path.join(req.session.clientPath, req.path === '/' ? '/index.html' : req.path));
if (clientFile.indexOf(main.paths.client) === 0 && fs.existsSync(clientFile)) {
res.sendFile(clientFile);
} else {
res.status(404).send('Not found');
}
});