我有一个视图助手,它在public/
文件的前面加上md5作为缓存破坏者:
<link href="http://localhost:3000/139cce29ff216955a42ae663b061730d/index.css" rel="stylesheet">
由于URL中的md5部分只是浏览器的“技巧”,我希望静态表达中间件能够提供常规的public/index.css
文件。
我怎样才能写出这样的规则:
//...
var static = express.static('public');
//...
app.get('/:md5([a-zA-Z0-9]{32})*', function (req, res, next) {
var md5 = req.param('md5');
var filepath = req.param(0);
// --> NEED YOUR HELP HERE :) <--
next();
});
提前谢谢
答案 0 :(得分:0)
只需安装Asset Rack,您就可以同时提供所有这些文件的公共目录和缓存版本。
答案 1 :(得分:0)
如果您不能使用资产架或@dankohn建议的类似物,我会执行以下操作:
app.get('/:md5([a-zA-Z0-9]{32})*', removeHash, express.static('public'), restoreUrl);
function removeHash (req, res, next) {
req._restoreUrl = req.url;
req.url = '/' + req.url.split('/').splice(2).join('/');
next();
}
function restoreUrl (req, res, next) {
req.url = req._restoreUrl;
next();
}
所以要利用express.static()我: