मुझे केकपीएचपी 2.1 में कैशिंग और ब्राउज़र कैशिंग के साथ मिलकर काम करने के तरीके के बारे में एक सवाल है।केकपीएचपी 2.1: ब्राउज़र कैश बनाम देखें कैश
मैं सिर्फ CakePHP 2.1 करने के लिए अपने एप्लिकेशन अपग्रेड किया है, और नए $this->response->modified
विधि (जो अच्छी तरह से काम करता है) का उपयोग कर HTTPS संचय की स्थापना:
class ArticlesController extends AppController {
public function view($id) {
$article = $this->Article->find(
'first',
array('conditions' => array('Article.id' => $id))
);
$this->response->modified($article['Article']['modified']);
$this->set(compact('article'));
}
}
मैं भी CakePHP दृश्य कैशिंग की स्थापना की है:
class ArticlesController extends AppController {
public $cacheAction = array(
'view' => array('callbacks' => true, 'duration' => "1 week"),
}
}
स्वतंत्र रूप से उपयोग किए जाने पर दोनों अच्छी तरह से काम करते हैं। हालांकि, जब दोनों सक्षम होते हैं, तो केकपीएचपी व्यू कैशिंग ब्राउज़र कैशिंग को ओवरराइड करना प्रतीत होता है (विशेष रूप से, Last-Modified
हेडर भेजा जाता है जब केकपीएचपी व्यू कैश से पृष्ठों को परोसा जाता है)। यह ब्राउजर को कैशिंग पृष्ठों से रोकता है जो केकपीएचपी के व्यू कैश से परोसा जा रहा है।
आदर्श रूप में, मैं कैश पृष्ठों वे CakePHP के कैश से कार्य किया जा रहा है, भले ही करने के लिए ब्राउज़र चाहते हैं (यानी मैं CakePHP एक Last-Modified
हैडर वापस जाने के लिए, और ब्राउज़र के If-Modified-Since
अनुरोध हेडर का जवाब है, चाहे CakePHP है की परवाह किए बिना चाहते हैं पृष्ठ की कैश की गई प्रतिलिपि लौटाना या नहीं)।
मैं सोच रहा हूं कि यह व्यवहार की उम्मीद है या नहीं, चाहे मैं कुछ गलत कर रहा हूं, या फिर ऐसा कुछ है जिसे माना नहीं गया है (या यह महत्वपूर्ण नहीं माना जाता है)।
हां, नियंत्रक कार्रवाई द्वारा किए गए प्रतिक्रिया ऑब्जेक्ट में कोई भी संशोधन कैश नहीं किया जाएगा, इसमें कैश कंट्रोल हेडर की सेटिंग शामिल है। इसके बारे में एक खुला टिकट है (हालांकि कैशिंग से संबंधित नहीं): http://cakephp.lighthouseapp.com/projects/42648/tickets/2358-cachehelper-defect-with-response एकमात्र सुझाया गया वर्कअराउंड हेडर मैन्युअल रूप से मैन्युअल रूप से सेट कर रहा है लेआउट या 'कंट्रोलर :: पहले फ़िल्टर() '(कॉलबैक सक्षम के साथ)। – pixelistik