Hallo,
ich möchte manuell den HttpCache eines bestimmten Artikels invalidieren, aber das klappt irgendwie nicht - es passiert schlichtweg nichts.
Mittels
$cacheId = ‚a‘.$articleId; $cachware()->Events()->notify( Shopware_Plugins_HttpCache_InvalidateCacheId’, array(‚cacheId‘ => $cacheId) );
soll ein BAN-Request erzeugt werden, das ist an verschiedenen Stellen im Wiki und Forum dokumentiert.
Es passiert jedoch rein gar nichts, der Cache liefert die Seite schnell & munter weiter aus.
Kann jemand helfen?
Viele Grüße
Nils
Hi, vom Prinzip her sieht es gut aus, an anderer Stelle machen wir das ja auch so.
$this->getDqlHelper()->getEventManager()->notify(
'Shopware_Plugins_HttpCache_InvalidateCacheId',
array('subject' => $this, 'cacheId' => 'a'.$articleId)
);
Hast du in den Grundeinstellungen das ProxyPruning aktiviert? Die Funktion kann man ja auch global abschalten? Ansonsten musst du ab folgender Stelle durch-debuggen:
\Shopware_Plugins_Core_HttpCache_Bootstrap::onInvalidateCacheId
Daniel
1 „Gefällt mir“
Hallo Daniel,
danke, ja, ProxyPruning ist aktiviert, und reichlich debuggt habe ich schon. Ich versteh’s einfach nicht…
Das Ganze läuft auf Nginx, vielleicht greifen hier noch andere Caching-Mechanismen, obwohl da eigentlich
auch nichts aktiviert ist.
Nils
Hi,
wenn du dich von der Stelle, die ich genannt habe, durch steppst, müsstest du ja sehen, ob der überhaupt einen BAN-Request macht oder ob der vorher rausspringt - und wo. Dann kann man das Problem weiter eingrenzen.
Schau dir auch mal an, welche ProxyURL er nutzt (hier: \Shopware_Plugins_Core_HttpCache_Bootstrap::getProxyUrl). Vll. ist da was an der ShopURL oder der PruneURL falsch.
Daniel
das passt alles, ban-request geht durch, kommt auch an & überhaupt. echt seltsam.
Ich bin einen Schritt weiter: der BAN-Request wurde zwar Shopware-seitig korrekt abgesetzt. Ich habe mir dann mal die Response angeschaut, und siehe da: Nginx meldet 405 Not allowed. Natürlich klappt es dann so nicht. Das liegt also wohl an der Nginx-Konfiguration, ich arbeite jetzt mit dem Provider an einer Lösung dafür. Am Rande: wenn ich Shopware\Components\HttpCache\Store\purgeByHeader() mal testweise manuell aufrufe, klappt es.
Hi,
konntest du das „405“- Problem lösen?
bei mir hängt es gerade auch genau an dieser Stelle.
@tremonti Ja, der Provider (TimmeHosting) hat etwas an der Nginx-Config verändert, damit klappte es dann. Leider weiss ich nicht genau, was.