Der Cache-Control-Header kann in Laravel nicht festgelegt werdenPhp

PHP-Programmierer chatten hier
Anonymous
 Der Cache-Control-Header kann in Laravel nicht festgelegt werden

Post by Anonymous »

Ich habe ein Problem beim Festlegen des Cache-Control-Headers in meiner Laravel-Anwendung. Egal was ich versuche, der Browser zeigt immer den folgenden Header an:

Code: Select all

Cache-Control: max-age=0, must-revalidate, no-cache, no-store, private
Ich habe eine benutzerdefinierte Middleware namens \App\Http\Middleware\SetCacheHeaders erstellt, die so aussieht:

Code: Select all

class SetCacheHeaders
{
/**
* Handle an incoming request.
*/
public function handle(Request $request, Closure $next): Response
{
$response = $next($request);

if ($response instanceof \Illuminate\Http\Response) {
$response->header('Cache-Control', 'public, max-age=7200');
$response->setEtag(md5($response->getContent()));
}

return $response;
}
}
Ich habe auch versucht, die vordefinierte Laravel-Middleware zu verwenden:

Code: Select all

->middleware('cache.headers:public;max_age=7200;etag');
In beiden Fällen wird jedoch nur der Etag-Header gesetzt und der Cache-Control-Header wird nicht geändert.
Ich habe gelesen, dass dieses Problem durch PHP-Einstellungen verursacht werden kann, daher habe ich auch meine php.ini-Datei aktualisiert, um session.cache_limiter = '' festzulegen.
Diese Anwendung wird mit Laravel Forge gehostet Ich frage mich, ob das Probleme mit den Cache-Einstellungen verursachen könnte.
Ich habe auch versucht, den Cache-Control-Header direkt in der Nginx-Konfiguration festzulegen, was funktioniert hat, aber in diesem Fall Am Ende hatte ich zwei Cache-Control-Header, was nicht ideal ist.
Könnten Sie mir bitte helfen zu verstehen, warum ich den Cache-Control-Header in meinem nicht steuern kann? Laravel-Anwendung? Ich muss die Back-/Forward-Cache-Funktionalität einrichten, aber das hindert mich daran.
Jede Anleitung wäre sehr dankbar.

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post