2012-12-28 20 views
8

के लिए नहीं मैं निम्नलिखित कोड के साथ मेरी सीएसएस में शामिल हैं:Symfony2 और Assetic - cssrewrite देव के लिए पूरी तरह से काम करता है, prod

{% stylesheets 'bundles/majorproductionssewingdivasite/css/*.css' filter='cssrewrite' %} 
    <link rel="stylesheet" type="text/css" href="{{ asset_url }}" /> 
{% endstylesheets %} 

देव में, यह मुझे बिना किसी समस्या के छवि स्प्राइट उपयोग करने के लिए अनुमति देता है। मेरी स्प्राइट के लिए परिणामी URL होगा:

http://localhost/diva/bundles/majorproductionssewingdivasite/images/diva-sprites.jpg

सूचना वेब निर्देशिका की कमी:

http://localhost/diva/web/bundles/majorproductionssewingdivasite/images/diva-sprites.jpg

लेकिन, prod में, यह करने के लिए मैप किया जाता है।

सीएसएस फ़ाइल में जेनरेट कोड यह होना चाहिए, और मेरे सभी सीएसएस (दोनों देव 'चंक्स' और अंतिम प्रोड एसेटिक डंप) web/css/ पर हैं। प्रोड पर्यावरण वेब निर्देशिका को छोड़ने के कारण क्यों कोई विचार है?

संपादित करें:

$ app/console assetic:dump --env=prod 

उत्तर

20

समाधान prod वातावरण में संपत्ति डंप करने के लिए है: क्या अजीब बात यह है कि दोनों देव और उत्पादन सीएसएस अपने आप में एक ही यूआरएल उत्पन्न है डीबग मोड में, एसेटिक 1.1 भी सीएसएस को फिर से लिखना प्रतीत होता है जब यह {% स्टाइलशीट%} टैग में नहीं होता है। तो यह जांचने लायक है कि जब आप उत्पादन में डीबग बंद करते हैं तो वहां होता है।

+7

यह सही जवाब है संसाधित करने का प्रयास को रोकने के लिए। लेकिन आपको पहले कैश को साफ़ करने की आवश्यकता हो सकती है 'php app/console cache: clear --env = prod'। कैश की सफाई से पहले संपत्ति फ़ाइलों को डंप करना मेरे लिए समस्या का समाधान नहीं करता था। मैं सिम्फनी 2 के लिए थोड़ा नया हूं, लेकिन जो मैंने अभी अनुभव किया है, उससे लगता है कि भौतिक फाइलों से नहीं, संपत्ति फ़ाइलों को कैश से डंप करना प्रतीत होता है। – cartbeforehorse

+0

ओएमजी मैं इसे कैसे याद कर सकता हूं @ _ @ – GusDeCooL

0

:

url('../../bundles/majorproductionssewingdivasite/images/diva-sprites.jpg')

9

को कैश साफ़ याद रखें

php app/console cache:clear --env=prod --no-debug 

berore

php app/console assetic:dump --env=prod --no-debug 
1

इसके अलावा, उचित कॉन्फ़िगर assetic के लिए याद अपने config_prod.yml नीचे के रूप में सेट में:

assetic: 
    use_controller: false 

संपादित करें: रूप Symfony docs में कहा (वास्तव में अध्याय में पर्यावरण देव को संदर्भित करता है): Symfony बता इन फ़ाइलों को गतिशील

+0

कृपया अपना उत्तर पूरा करने के लिए कुछ अतिरिक्त विवरण शामिल करें – amonk

+0

आप सही हैं, लेकिन सामान्य कॉन्फ़िगरेशन पहले से ही 'use_controller: '% kernel.debug%'' ' – Arno