我在使用Laravel 4时遇到了麻烦。不知怎的,标题
Cache-Control: no-cache
始终在我网站中所有网页的回复中发送。我找不到在哪里或如何改变它。
由于这影响了我所有的控制器,我正在使用View::Make
呈现视图,我真的想要一种全局改变的方法。
答案 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,了解有关将不同内容(模板等)转换为响应呼叫的更多信息。