public function cacheAction()
{
$this->getResponse()->clearHeaders();
$this->getResponse()->setHeader('Cache-Control', sprintf('public, max-age=%d', 3600 * 24 * 30), true);
$this->getResponse()->setHeader('Pragma', 'cache', true);
$this->getResponse()->setHeader('Expires', gmdate(self::DATE_FORMAT, date_create('+30 days')->getTimestamp()), true);
try {
$this->_helper->service('image')->generateFromSrc($this->_getParam('src'));
$this->getResponse()->setHeader('Content-Type', $this->getContentType($this->getPath()), true);
$this->getResponse()->sendHeaders();
$this->getResponse()->setBody(file_get_contents($this->getPath()));
} catch (\Exception $e) {
$this->getResponse()->clearHeaders();
$this->getResponse()->setHttpResponseCode(404);
}
$this->getResponse()->sendResponse();
exit;
}