2016-09-13 2 views
3

je dois retourner un en-tête de contrôle du cache spécifique (Cache-Control: public, max-stale=13910400), mais lorsqu'il est exécuté, je reçois ceci: Curl -vv3 Slim double emploi avec en-tête cache-control

Cache-control a été dupliqué, mais je ne ai besoin des valeurs personnalisées .

$newResponse = $response->withHeader('Cache-Control', 'public, max-stale=13910400')->withJson($appInfo); 
return $newResponse; 

J'ai essayé, mais il ne fonctionne pas (seulement pour les tests):

$newResponse = $response->withoutHeader('Cache-Control')->withHeader('Cache-Control', 'public, max-stale=13910400')->withJson($appInfo); 
return $newResponse; 

Comment puis-je régler correctement l'en-tête?

Merci

+0

J'ai signalé le problème aux auteurs Slim: https://github.com/slimphp/Slim/issues/2282 – Finesse

Répondre

2

Je soupçonne que vous pourriez avoir un problème de middleware.

Votre code ci-dessus produit la sortie correcte.

$app->get('/test', function ($req, $res, $args) { 
    header_remove("Cache-Control"); //Edit <-- 
    $newResponse = $res->withHeader('Cache-Control', 'public, max-stale=13910400')->withJson(["message" => "Test"]); 
    return $newResponse; 
}); 

CURL sortie

C: \ Users \ Glenn> boucle -X GET -v http://localhost/vms2/public/test

HTTP/1.1 200 OK

Date: Mar 19 le 13 septembre 2016 : 04: 42 GMT * Serveur Apache/2.4.10 (Win32) OpenSSL/1.0.1i PHP/5.6.3 n'est pas sur la liste noire

Serveur: Apache/2.4.10 (Win32) OpenSSL/1.0.1i PHP/5.6.3

X-Powered-By: PHP/5.6.3

Set-Cookie: VMS2 = 2qf14qr1c0eplgfvibi8t2hcd2; path =/

Expire: Jeu 19 novembre 1981 08:52:00 GMT

Pragma: no-cache

Cache-Control: public, max-stale = 13910400

Content- longueur: 18

Content-type: application/JSON; charset = utf-8

{ "message": "test"}

  • Connection # 0 à l'hôte localhost gauche intacte
+0

Regardez votre code . Il y a 2 cache-control, comme moi. – legomolina

+0

intéressant ... http://stackoverflow.com/questions/4762377/cache-control-headers-repeated-valid-or-not-nginx apparemment c'est valide? – geggleto

+0

J'utilise habituellement un postier et c'est exactement comme firebug, mais je ne veux que le public et le max-stale apparaît. Btw J'utilise Apache, si son pertinent – legomolina