यहां एक संपूर्ण काम कर उदाहरण है । यह उदाहरण एसेटिक का उपयोग करके और आपके सीएसएस में एम्बेड फ़ाइल के साथ काम करना चाहिए।
यहाँ
शखिरूपता
/app
/src
---/Acme
------/MyBundle
---------/Ressources
------------/public
---------------/css
------/MyOtherBundle
---------/Ressources
------------/public
---------------/css
/web
---/bundles
------/acmemybundle
------/acmemyotherbundle
---/css
------/built
तो में मान लीजिए कि /src/Acme/MyBundle/Ressources/public/css/main.scss सब घोषणा है कि मैं में आयात करना चाहते हैं के साथ फाइल में है मेरी अन्य बंडल (मेरे मामले में मैं सैस का उपयोग करता हूं लेकिन यह कम के साथ समान है)।
में /src/Acme/MyOtherBundle/Ressources/public/css/mycss.scss मैं करूँगा:
@import "../../../../MyBundle/Resources/public/css/main";
इस फ़ाइल की क्लासिक भौतिक स्थान का उल्लेख है, तो आपके आईडीई होगा इसे खोजें।
अब दिलचस्प हिस्सा है।हम सभी scss फ़ाइल को केवल एक सीएसएस फ़ाइल में संकलित, छोटा और नामित करना चाहते हैं। हम इसे एसेटिक्स के साथ कर सकते हैं।
एक टवीग फ़ाइल में जहां आप अपना सीएसएस लोड करते हैं (मेरे मामले /app/Ressources/views/css.html.twig में)।
{% stylesheets
filter='compass'
filter='?uglifycss'
filter='cssrewrite'
output='css/built/myMinifiedAndCompiledSass.css'
'bundles/mybundle/css/*.scss'
'bundles/myotherbundle/css/*.scss'
%}
<link rel="stylesheet" type="text/css" href="{{ asset_url }}">
{% endstylesheets %}
==> यहाँ आप वाक्य रचना/वेब निर्देशिका (ताकि का उपयोग करने से फ़ाइल का उल्लेख करने के लिए है 'बंडलों/acmemybundle ..'। आप सिमलिंक मोड में संपत्ति स्थापित करने की आवश्यकता। (Php एप्लिकेशन/कंसोल संपत्ति : अपने conf.yml में
और अंत में स्थापित --symlink) ==> आप जो कुछ भी आप उत्पादन filemane और स्थान में करना चाहते हैं, क्योंकि आप वेब निर्देशिका में रहने के रख सकते हैं
# Assetic Configuration
assetic:
filters:
cssrewrite: ~
sass: ~
compass:
load_paths:
- "/usr/bin/compass"
- "%kernel.root_dir%/../src/Acme/MyBundle/Resources/public/css/"
uglifycss:
bin: %kernel.root_dir%/../node_modules/.bin/uglifycss
uglifyjs2:
bin: %kernel.root_dir%/../node_modules/.bin/uglifyjs
।कंपास में load_paths का महत्वपूर्ण हिस्सा यहां है। बुनियादी सेट अप में आप कम्पास है: ~ आप के लिए इसे बदलने के लिए की जरूरत है:
compass:
load_paths:
- "/usr/bin/compass"
- "%kernel.root_dir%/../src/Acme/MyBundle/Resources/public/css/"
यह भी आप कम फ़ाइलें गठबंधन करने के लिए assetic का उपयोग करने के लिए उन्हें आयात करने के बजाय एक विकल्प एक दूसरे के भीतर ffrom है? –
काफी संभावना नहीं है .. मुझे विकास के दौरान, दूसरों के व्यवहार को बढ़ाने के लिए अन्य कम फ़ाइलों को आयात करने की संभावना की आवश्यकता है। –
फ़िल्टर परिभाषा को देखो, ऐसा लगता है कि किसी भी कस्टम पथ (समावेशन के लिए खोज के लिए) पास करने का कोई तरीका नहीं है https://github.com/symfony/AsseticBundle/blob/master/Resources/config/filters/less.xml। यह कॉल करने का तरीका है: https://github.com/kriswallsmith/assetic/blob/master/src/Assetic/Filter/LessFilter.php#L59 – gremo