2013-03-25 21 views
6

के साथ हैंडलबार.जेएस फ़ाइलों को प्रबंधित और शामिल करें, मैं अपने twig फ़ाइलों से अपने हैंडलबर्स.जेएस टेम्पलेट को बाहर करना चाहता हूं।सिम्फनी 2.1 और एसेटिक

इसलिए मैंने public नामक hbs नामक फ़ोल्डर में एक नई निर्देशिका बनाई जहां मैंने अपने सभी हैंडलबार टेम्पलेट्स रखे। मैं उन टेम्पलेट्स को प्रस्तुत करने और स्क्रिप्ट टैग के साथ लपेटने के लिए अचलिक कैसे कहूं?

उत्तर

9

आपको एसेटिक बंडल 2.1.2 या उसके बाद की आवश्यकता है।

  1. हैंडल संकलक
  2. कॉन्फ़िगर एक assetic फिल्टर स्थापित करें अपने हैंडल टेम्पलेट्स
  3. संकलित करने के लिए अपने टहनी टेम्पलेट में टेम्पलेट शामिल करें: कि इसके अलावा, आपको तीन कार्य करने की जरूरत है।

संकलक

instructions on the handlebars website का पालन करें स्थापित कर रहा है। या, कम:

npm install handlebars -g 

फिल्टर का विन्यास

अपने कॉन्फ़िग फ़ाइल को यह करें:

assetic: 
    filters: 
     handlebars: 
      apply_to: "\.handlebars$" 

यह assetic बता में "न खत्म होने वाली सभी फाइलों को हैंडल फिल्टर लागू करना होगा। हैंडलबार्स ", प्रभावी रूप से उन्हें एक संकलित हैंडलबार टेम्पलेट में बदल रहा है। आप जो कुछ भी पसंद करते हैं उसे सेटिंग में समायोजित कर सकते हैं।

आपको संपत्ति को बताने की आवश्यकता हो सकती है जहां आपका हैंडलबार्स कंपाइलर रहता है यदि यह डिफ़ॉल्ट स्थान (/ usr/bin/handlebars) में नहीं है। इसके लिए हैंडलबार्स फ़िल्टर की "बिन" सेटिंग का उपयोग करें। उदाहरण के लिए, यदि आप (जी विकल्प के बिना NPM का उपयोग करके) अपनी परियोजना के उप-निर्देशिका के यह स्थापित किया है, अपने config इस प्रकार दिखाई देंगे: टहनी टेम्पलेट में

assetic: 
    filters: 
     handlebars: 
      apply_to: "\.handlebars$" 
      bin: node_modules/handlebars/bin/handlebars 

संदर्भ

कैसे आप जावास्क्रिप्ट फ़ाइलों को शामिल किया जाएगा के लिए इसी तरह अपने टहनी टेम्पलेट में एक नया संदर्भ जोड़ें:

{% javascripts 
    '@MyBundle/Resources/public/hbs/*.handlebars' 

     output='assets/my-handlebars-templates.js' 
     %} 
    <script type="text/javascript" src="{{ asset_url }}"></script> 
{% endjavascripts %} 

तो फिर तुम अपनी परियोजना में टेम्पलेट का उपयोग कर सकते हैं। वे हैंडलबर्स.templates [templatename] में "टेम्पलेट-नाम" के साथ "टेम्पलेट-नाम" के साथ "टेम्पलेट-नाम" को छोड़कर आपके टेम्पलेट के फ़ाइल नाम के रूप में संग्रहीत हैं।

आशा है कि मदद करता है ...

+0

बहुत भयानक का उपयोग कर हैंडल का सही स्थान प्राप्त करें। धन्यवाद! –

+1

यदि आपका नोड।जेएस निष्पादन योग्य '/ usr/bin/node' से भिन्न स्थान पर है (उदाहरण के लिए'/usr/local/bin/node' में अगर आप इसे मैक ओएस एक्स पर ऑफिकल इंस्टॉलर के माध्यम से स्थापित करते हैं), तो आपको 'नोड' :/path/to/node' 'हैंडलबार्स' एसेटिक फ़िल्टर कॉन्फ़िगरेशन में। – chiborg

0

आप बिन में हैंडलबार्स के लिए सही रास्ता डाल सकते हैं। मेरे लिए काम करने के बाद।

assetic: 
    filters: 
     handlebars: 
      apply_to: "\.handlebars" 
      bin: /usr/local/bin/handlebars 

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