如何附加来自OctoberCMS中组件的响应头?

时间:2018-07-31 08:53:17

标签: octobercms octobercms-plugins

我正在尝试将响应标头(例如“ Pragma:no-cache”)附加到前端页面的响应中。

如果我是实例化响应对象的对象,则可以按照此October documentation所述在其上调用header方法。

但是,要从组件执行此操作,我需要从组件的onRun方法返回响应对象,它将终止the layout lifecycle

我曾考虑过创建中间件来做到这一点,但是有没有更简单的方法可以在不终止布局生命周期的情况下为前端页面添加响应头呢?

1 个答案:

答案 0 :(得分:0)

我发现一种方法似乎是正确的方法。

钩住cms.page.display事件,并根据传递的结果和您的其他响应标头创建响应。

    public function myComponentMethod()
    {
        Event::listen('cms.page.display', function ($controller, $url, $page, $result) {
            $headers = [
                // Headers you want to set
                'Cache-Control' => 'no-store, no-cache, must-revalidate, max-age=0, post-check=0, pre-check=0',
                'Pragma' => 'no-cache',
            ];
            return Response::make($result, $controller->getStatusCode(), $headers);
        });
    }

有关十月事件处理的详细信息,请参见here