2012-08-31 6 views
81

जब मैं अपने .js फ़ाइल से लिंक करने के लिए TWIG {% javascript %} टैग का उपयोग करने की कोशिश कर रहा हूँ यह मुझे निम्न अपवादों के साथ वापसी:मैं "mybundle को एसेटिक बंडल कॉन्फ़िगरेशन में जोड़ें" symfony2 अपवाद कैसे ठीक करूं?

An exception has been thrown during the compilation of a template ("You must add CompetitiongameBundle to the assetic.bundle config to use the {% javascripts %} tag in CompetitiongameBundle:game:index.html.twig.") in "CompetitiongameBundle:game:index.html.twig". 

मेरे index.html.twig लगता है:

{% javascripts 'CompetitiongameBundle/Resources/views/public/js/*'%} 
    <script type="text/javascript" src="{{ asset_url }}" ></script> 
{% endjavascripts %} 
Hello {{ name }}! 

<a href='{{ nexturl }}' >Login</a> 

मेरे बंडल पहले से मौजूद है कॉन्फ़िगरेशन फ़ाइल में जब मैं करता हूं:

php app/console config:dump-reference assetic 

मैं इसे कैसे ठीक कर सकता हूं? [] Assetic की पंक्ति:

+0

चेक इस सवाल और दो प्रस्तावित समाधान हेरफेर करने के लिए और अधिक जटिल तर्क का उपयोग कर सकते/प्रश्न/10376 9 46/परिसंपत्ति-असमर्थ-से-खोजने-फ़ाइल –

+0

यह गुओ आईडी होगा जो आप वास्तव में इस प्रश्न का उत्तर चुनते हैं। – tftd

उत्तर

169

हाँ मैंने कोशिश की और यह मेरे लिए समस्या हल हो जाती।

  1. संपादित app/config/config.yml
  2. तो assetic तहत assetic:
  3. पर जाएँ:: किसी (मेरे जैसे) जो शुरू में तो बस जोड़ने के बारे में पता नहीं है के लिए जाना bundles: []
  4. करने और bundles: [] में // अपने बंडल नाम
उदाहरण के लिए

टाइप करता है, तो अपने बंडल Acme\DemoBundle है, तो निम्नलिखित

assetic: 
    bundles: [ AcmeDemoBundle ] 

AcmeDemoBundle के आसपास कोई उद्धरण नहीं है। बस। (Symfony2)

+4

चरण-दर-चरण निर्देश – bumerang

+14

के लिए धन्यवाद यदि आवश्यक हो, तो अतिरिक्त बंडलों को अल्पविराम से अलग किया जाना चाहिए। – Zoot

+1

मैं symfony2.3 का उपयोग कर रहा हूं, मैंने सरणी में अपना बंडल जोड़ा लेकिन मेरे पास अभी भी एक ही अपवाद है। यहां तक ​​कि जब मैं बंडलों पर टिप्पणी करता हूं तब भी मुझे एक ही अपवाद संदेश मिलता है। मुझे क्या करना चाहिए? –

3

आप बंडल करने अपने बंडल जोड़ने की जरूरत एप्लिकेशन/config/config.yml फ़ाइल (सिम्फोनी 2.1) में खंड

24

(#) के साथ आप डिफ़ॉल्ट रूप से अपने बंडल शामिल करने के लिए assetic चाहते हैं, आप टिप्पणी कर सकते हैं लाइन बंडलों: []

पूर्व:

assetic: 
    debug:   "%kernel.debug%" 
    use_controller: false 
    #bundles:  [ ] 
    #java: /usr/bin/java 
+0

बंडलों पर टिप्पणी करने के लिए कोई दुष्प्रभाव हैं? – Permana

+0

कोई भी जिसे मैं सोच सकता हूं। यह सिर्फ आपके प्रोजेक्ट में सभी बंडलों को शामिल करता है। हो सकता है कि यह आपके ऐप को धीमा कर दे, लेकिन व्यक्तिगत रूप से मैंने कभी भी गति में कोई अंतर नहीं देखा। – Tivie

10

कभी-कभी आप निर्णय लेने की जरूरत फ्लाई पर, आप DependencyInjection का उपयोग कर सकते हैं।

उदाहरण के लिए loads and manages configuration रहे हैं: http://stackoverflow.com:

<?php 

namespace You\ExampeBundle\DependencyInjection; 

use Symfony\Component\DependencyInjection\ContainerBuilder; 

/* ... */ 

class YouExampeExtension extends Extension 
{ 

    /* ... */ 

    public function load(array $configs, ContainerBuilder $container) 
    { 
     /* ... */ 

     $aAsseticBundle = $container->getParameter('assetic.bundles'); 
     $aAsseticBundle[] = 'YouExampeBundle'; 
     $aAsseticBundle[] = 'AnotheBundle'; 
     $container->setParameter('assetic.bundles', $aAsseticBundle); 

     /* ... */ 
    } 
} 

आप विन्यास (उचित सीमा में)

+1

यह विशेष रूप से उपयोगी है यदि आप बंडल विरासत का उपयोग करके एक और बंडल बढ़ाते हैं। – flu

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