ejs有办法压缩html吗,比如说去掉生成的空行、空格之类的?
发布于 12 年前 作者 jsonshen 10222 次浏览 最后一次编辑是 8 年前
16 回复

liteview 可以,哈哈哈 npm install liteview

看出来了liteview是你的作品,打算试一把,这个能兼容ejs不?另外json.shen@gmail.com是我的邮箱,请给个NAE码。呵呵

去掉空格神马的,直接写一个函数不就搞定了么?!?!

大概是什么样的一个函数?

@jsonshen

	var rs = fs.createReadStream('template.html');
rs.on('data',function(data){//获取html模板
	compress(data.toString());
});
function compress(html){//去掉空格等的示例
	html.replace(/ +/gi," ");
}

原理上就是这样了,当然需要加上对\n的替换,以及考虑可能会将字符串中的多个空格替换的问题。

@cattail2012 这正则好像去不了空行

@jsonshen 空行相当于两个回车换行,即/\r\n(\s)*\r\n/,我用php写过相关东东用到过的,js也一样吧,不过没测试~~

@jsonshen

var rs = fs.createReadStream('template.html');
rs.on('data',function(data){//获取html模板
    compress(data.toString());
});
function compress(html){//去掉空格等的示例
    html.replace(/\s+/gi," ");
}

@jsonshen 没有实际测试过,只是说明一下原理而已。

哈哈,搞定 。这样来一下根本就没ejs什么事了,通吃。。。

app.use(function(req, res, next){
    var send = res.send;
    res.send = function(body){
      if('string' == typeof body)
        body = body.replace(/\n[\s]*/g,"");
      send.call(res, body);
    }   
    return next();
  }); 

你这直接把数据中的空白符都去掉了

@jsonshen 这是加在哪里的?

这是什么需求,其实你可以在nginx里面开启gzip的啊

五年前的老坟被挖出来了

借鉴一下六年前的

回到顶部