Laravel发送no-cache标头

时间:2014-12-16 11:43:58

标签: caching laravel laravel-4

我在使用Laravel 4时遇到了麻烦。不知怎的,标题

Cache-Control: no-cache 

始终在我网站中所有网页的回复中发送。我找不到在哪里或如何改变它。

Cache-Control: no-cache

由于这影响了我所有的控制器,我正在使用View::Make呈现视图,我真的想要一种全局改变的方法。

2 个答案:

答案 0 :(得分:6)

如果您想使用缓存,可以在"响应"中更改其行为。 object(在本例中由控制器方法返回):

public function myControllerMethod() {
    $response = Response::make('something');
    $response->setLastModified(new DateTime("now"));
    $response->setExpires(new DateTime("tomorrow"));
    return $response;
}

它适用于我的环境,我希望它会有所帮助。

修改

如果要全局设置,可以尝试(在app/start/目录中):

App::after(function($request, $response) {
    $response->setLastModified(new DateTime("now"));
    $response->setExpires(new DateTime("tomorrow"));
});

答案 1 :(得分:0)

为了帮助其他人试图找到Laravel 5.4的答案,这将是:

namespace App\Http\Controllers;
use DateTime;

class MyController extends Controller
{
  public function index()
  {
    return response('my content here')
              ->setLastModified(new DateTime("now"))
              ->setExpires(new DateTime("tomorrow"));
   }
}

另请参阅:https://laravel.com/docs/5.4/responses,了解有关将不同内容(模板等)转换为响应呼叫的更多信息。