2012-05-06 9 views
7

मैं केकपीएचपी प्लगइन एसेट कॉम्प्रेस (v 0.7) का उपयोग कर रहा हूं जो ठीक काम करता है, सिवाय इसके कि यह निर्देशिका में किसी भी फाइल को कैश नहीं करता है।केकपीएचपी 2.1 एसेट कंप्रेस प्लगइन कैश की गई फाइलें नहीं बना रहा

[General] 
writeCache = true 
cacheConfig = false 
alwaysEnableController = true 
debug = false 

[js] 
timestamp = true 
paths[] = WEBROOT/js/ 
cachePath = WEBROOT/cache_js/ 

[speedtest.min.js] 
files[] = speedtest/speedtest.js 

अतिरिक्त नोट्स:: यह मेरा asset_compress.ini सेटअप है

  • मैं डिबग स्थापित करने के लिए "0" core.php में
  • cache_js फ़ोल्डर लिखने योग्य (777)
  • है
  • मैं भी एक कैशिंग इंजन के रूप में MemCache का उपयोग कर रहा हूं (सुनिश्चित नहीं है कि यह समस्या का कारण हो सकता है)

क्या किसी ने एसेट कंप्रेस प्लगइन के साथ एक ही समस्या का अनुभव किया है?


अद्यतन: यह है कि मैं क्या सीएसएस/कम भाग के लिए इस्तेमाल करते हैं, बहुत अच्छी तरह से काम करता है: https://github.com/Hyra/less

+0

क्या अपने लेआउट कैसा दिखता है से सामान्य AssetCompress चला सकते हैं यह सोचते है? क्या आपने खोलने की कोशिश की है कि आप मैन्युअल रूप से उन्हें बना सकते हैं या नहीं? '$ केक property_compress.asset_compress build' – jeremyharris

+0

अफसोस की बात है कि मेरे पास खोल तक पहुंच नहीं है :(सुनिश्चित नहीं है कि आपका लेआउट कैसा दिखता है," आपका लेआउट कैसा दिखता है "। एसेट कॉम्प्रेस पूरी तरह से ठीक काम करता है (स्क्रिप्ट को संयोजित और छोटा करता है) एकमात्र मुद्दा I यह है कि फ़ाइलों को बनाए जाने के बाद संग्रहीत नहीं किया जाता है (भले ही मैंने उचित अनुमतियां दी हों) –

+0

स्टेटिक फाइल केवल शैल का उपयोग करके उत्पन्न होती हैं, इसलिए मुझे नहीं पता कि आप इसे कैसे पूरा करने जा रहे हैं यदि आपके पास नहीं है मुझे लगता है कि मैं उन्हें अपने स्थानीय पीसी पर खोल का उपयोग करके अनुमान लगाऊंगा और उसके बाद जेनरेट की गई स्थिर फाइलों को ऐप/टीएमपी/परिसंपत्ति_कंप्रेस_बिल्ड_टाइम के साथ अपलोड कर सकता हूं। – tigrang

उत्तर

2

अगर मैं अच्छी तरह से इस Github's wiki page समझते हैं कि आप cacheConfig = falsecacheConfig = true में बदल जानी चाहिए मेम्कैश का लाभ लेने के।

+0

एमएचएच ... दिलचस्प। मैंने MemCache को निष्क्रिय कर दिया और कैश कॉन्फिग सेटिंग = झूठी रखी लेकिन फिर भी फाइलें cache_js फ़ोल्डर में संग्रहीत नहीं थीं। फिर मैंने कैशिंग तंत्र के रूप में "FILE" को सक्रिय किया लेकिन अभी भी बनाई गई जावास्क्रिप्ट फ़ाइल cache_js फ़ोल्डर में संग्रहीत नहीं है (मैंने कैश फ़ोल्डर को भी चेक किया है लेकिन अभी भी कोई भाग्य नहीं है)। –

+0

किसी भी मौके से, क्या लॉग फ़ाइल आपकी समस्या से संबंधित कोई सार्थक जानकारी रखती है ('ऐप/टीएमपी/लॉग/त्रुटि.लॉग') –

+0

आप किस फ़िल्टर का उपयोग कर रहे हैं? यदि आपकी property_compress.ini यहां पूर्ण हो गई है, तो यह मेरे लिए स्पष्ट है कि यह काम नहीं करेगा। इस प्लगइन की मेरी समझ में, आपको उसे यह बताना होगा कि आपकी फाइलों के साथ किस फ़िल्टर का उपयोग करना है, जैसे कि [Uglify.js] (https://github.com/mishoo/UglifyJS) या [YUICompressor] (https: //github.com/yui/yuicompressor)। मैं इसे [property_compressor's wiki] (https://github.com/markstory/asset_compress/wiki) के माध्यम से सही करने के लिए सही करने के लिए अनुशंसा करता हूं। –

2

आपको शैल स्क्रिप्ट का उपयोग करके फ़ाइलों को उत्पन्न करना होगा। फाइलें स्वचालित रूप से जेनरेट नहीं होती हैं।

https://github.com/markstory/asset_compress/wiki/Shell

0

पैदा करते हैं और asset_compress.ini config में या मक्खी पर AssetCompress सहायक के माध्यम से परिभाषित स्थिर संपत्तियों को संग्रहीत करने के लिए। जब भी आप सीएसएस या जेएस फाइलों को बदलते हैं तो आपको कंसोल स्क्रिप्ट मैन्युअल रूप से चलाने के लिए सहेजना है।

कुछ लोग "बुरा" हैक के रूप में परिभाषित करेंगे, मैं इसे एक समाधान समाधान कहता हूं। यह कंसोल स्क्रिप्ट को php exec() विधि के माध्यम से हर बार AppController से पहले Filter() चलाता है और डीबग स्तर 0 से बड़ा होता है। इसलिए उत्पादन में जहां आपका डीबग स्तर 0 होना चाहिए, exec() नहीं चलाया जाएगा ।

अपने /app/Controller/AppController.php से पहले Filter() फ़ंक्शन में निम्नलिखित जोड़ें।

if(Configure::read('debug') > 0){ 
    exec(APP.'Console'.DS.'cake -app '.APP.' AssetCompress.asset_compress build -f'); 
} 

यह है कि आप कंसोल (लिनक्स) या cmd शीघ्र (विंडोज़)

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