2011-07-13 9 views
5

मुझे सीएसएस फाइलों, छवियों की फाइलों, जेएस फाइलों, आदि (वेबूट सामग्री) के रूप में संसाधनों के लिए कुछ HTTP शीर्षलेख "समाप्त हो जाता है", "कैश-कंट्रोल", "अंतिम-संशोधित" सेट करने की आवश्यकता है।केकेपीएचपी 2 में स्थैतिक सामग्री (सीएसएस, छवियों, जेएस फाइल) कैश कैसे करें?

मैं पढ़ा है के माध्यम से

Configure::write('Asset.timestamp', true); // In core.php 

और सहायक वर्ग के assetTimestamp विधि कुछ कार्यक्षमता है कि,।

अब सवाल यह है कि इसका उपयोग कैसे किया जाता है?

मैं HtmlHelper कोड को पढ़ने और सीएसएस विधि में, लाइन 361 वहाँ इस है:

$url = $this->assetTimestamp($this->webroot($path)); 
+0

बेकर्स के लिए googling के लिए – givanse

उत्तर

11

हल।

सबसे पहले आपको इसे अपाचे के माध्यम से बनाने के लिए विचार करना होगा। आप इस गाइड को देख सकते हैं: http://httpd.apache.org/docs/2.2/caching.html

बात यह है कि केकपीएचपी के पास ऐसा करने का तरीका है। और बहुत अच्छा है।

मैं इसे सीएसएस फ़ाइलों के लिए समझाऊंगा। बेशक जेएस सामग्री के लिए भी इस्तेमाल किया जा सकता है।

1) अपने core.php फ़ाइल में (एप्लिकेशन के तहत/config /) टिप्पणी हटाएं इस लाइन:

Configure::write('Asset.filter.css', 'css.php'); 

कि लाइन है कि "css.php" स्क्रिप्ट के माध्यम से मार्ग को CakePHP करने के लिए कहते हैं सीएसएस फ़ाइलों के लिए सभी अनुरोधों । जैसा कि नाम का तात्पर्य है, यह एक फ़िल्टर है। वहां हम जो कुछ भी चाहते हैं हम कर सकते हैं।

2) "css.php" फ़ाइल बनाएं। आप/

मेक वहाँ एप्लिकेशन/webroot के तहत उसे बनाने के लिए है, तो आप फ़ाइल कि browsen अनुरोध कर रहा है लेने के लिए और कुछ कैश HTTP हेडर आवेदन कर सकते हैं।

कुछ की तरह:

$filepath = CSS . $regs[1]; //There are some variables that are can be used in this script, take a look to de docs. 

$output = file_get_contents($filepath); 
header("Date: " . date("D, j M Y G:i:s ", $templateModified) . 'GMT'); 
header("Content-Type: text/css"); 
header("Expires: " . gmdate("D, d M Y H:i:s", time() + DAY) . " GMT"); //WEEK or MONTH are valid as well 
header("Cache-Control: max-age=86400, must-revalidate"); // HTTP/1.1 
header("Pragma: cache");  // HTTP/1.0 
print $output; 

यह है कि! वहां आपकी सामग्री निर्दिष्ट उन शीर्षकों के साथ परोसा जाएगा और ब्राउज़र को पता चलेगा कि उन्हें कैश कर सकते हैं। वहाँ वह भी यह minfies css.php का एक अच्छा संस्करण है

http://www.bunchacode.com/programming/get-cakephp-build-in-css-compression-to-work/

:

पर एक नजर डालें।

+2

हमने js और इस के साथ सीएसएस कर सकते हैं "निम्न संसाधनों के लिए भविष्य में कम से कम एक सप्ताह एक समय समाप्ति निर्दिष्ट करें"। हम छवियों में समाप्ति शीर्षलेख कैसे जोड़ सकते हैं? –

संबंधित मुद्दे