如何在Yii2中启用gzip压缩
问题描述:
如何在Yii2中启用gzip压缩?如何在Yii2中启用gzip压缩
我试图在网络/ index.php中使用下面的代码,但它返回空
$application = new yii\web\Application($config);
$application->on(yii\web\Application::EVENT_BEFORE_REQUEST, function($event){
ob_start("ob_gzhandler");
});
$application->on(yii\web\Application::EVENT_AFTER_REQUEST, function($event){
ob_end_flush();
});
$application->run();
答
不知道这是最好的做法,但我把它通过对警予附加事件处理工作\网络\响应
$application = new yii\web\Application($config);
$application->on(yii\web\Application::EVENT_BEFORE_REQUEST, function(yii\base\Event $event){
$event->sender->response->on(yii\web\Response::EVENT_BEFORE_SEND, function($e){
ob_start("ob_gzhandler");
});
$event->sender->response->on(yii\web\Response::EVENT_AFTER_SEND, function($e){
ob_end_flush();
});
});
$application->run();
答
它是更好的主意,你可以在任何地方(在控制器或动作等)使用它:
\yii\base\Event::on(
\yii\web\Response::className(),
\yii\web\Response::EVENT_BEFORE_SEND,
function ($event) {
ob_start("ob_gzhandler");
}
);
\yii\base\Event::on(
\yii\web\Response::className(),
\yii\web\Response::EVENT_AFTER_SEND,
function ($event) {
ob_end_flush();
}
);
我认为这是一个与这一个重复:http://stackoverflow.com/questions/10975908/yii-compress-your-application-output-using-gzip –
,一个是以前的版本Yii 1.x,它不适用于Yii 2.X – Harris