2013-05-07 5 views
6

साथ संपत्ति के संयोजन CDN का उपयोग करते हुए मैं अपने Symfony2 परियोजना में Assetic साथ CDN एक साथ उपयोग करना चाहते हैं।जब Symfony2 और Assetic

{% javascripts 
    '@MyBundle/Resources/public/js/file-1.js' 
    '@MyBundle/Resources/public/js/file-2.js' %} 
    <script src="{{ asset_url }}"></script> 
{% endjavascripts %} 

और मेरे config.yml फ़ाइल में मैं एक CDN पंजीकृत किया है संपत्ति में इस्तेमाल किया जाएगा:

framework: 
    templating: 
     assets_base_urls: 
     http: [http://my.cdn.url] 
     ssl: [https://my.cdn.url] 

जब डंपिंग, मैं क्या मैं कई जावास्क्रिप्ट फ़ाइलें गठबंधन करने के लिए javascripts सहायक उपयोग कर रहा हूँ एक संयुक्त फ़ाइल मिलता है, लेकिन अपने यूआरएल एक रिश्तेदार से एक है, नहीं CDN के लिए एक इशारा है। उदाहरण के लिए:

<script src="/js/c713f83.js"></script> 

और यह कई सीएसएस फ़ाइलों को संयोजित करते समय भी होता है। एक ही रास्ता मैं CDN का उपयोग करके URL पाने में कामयाब रहे asset के माध्यम से है:

<img src="{{ asset('bundles/mybundle/images/logo.png') }} "> 

क्या CDN मेजबान मैं अपने विन्यास में निर्दिष्ट किया है का उपयोग करने से Assetic को रोकने है?

उत्तर

9

उत्तीर्ण होने के लिए Assetic के asset() टहनी के कार्य करने के लिए asset_url उत्पन्न होते हैं:

{% javascripts 
    '@MyBundle/Resources/public/js/file-1.js' 
    '@MyBundle/Resources/public/js/file-2.js' %} 
    <script src="{{ asset(asset_url) }}"></script> 
{% endjavascripts %} 

पता है कि dev वातावरण में आप URL हैं, जो http://my.cdn.url/app_dev.php/js/file-1.js दिखेंगे रहें। आपको अपने dev पर्यावरण कॉन्फ़िगर करने के लिए है कि को रोकने के लिए तो यह CDN का उपयोग नहीं करता:

# app/config/config_dev.yml 
framework: 
    templating: 
     assets_base_urls: 
      http: [] 
      ssl: [] 

, assetic:dump साथ अपनी संपत्ति की डंपिंग याद रखें और कुल मिलाकर, याद रखें कि Assetic और Symfony2 asset Twig function दो अलग बातें हैं।

+0

मैं सीएसएस फ़ाइलों के अंदर संपत्ति के साथ समस्या आ रही है, उदाहरण के लिए, माउस के लिए बूटस्ट्रैप भार फ़ाइलों ट्विटर और इन फ़ाइलों वे कर रहे हैं टिप्पणी लोड हो रहा है .. क्या आप जानते हैं कि यह कैसे तय करने के लिए करो स्टोर करने के लिए एक CDN (अमेज़न S3) का उपयोग कर? config_dev.yml में assets_base_urls बाहर रिक्त से – Cassiano

+0

आसान समाधान केवल अपने config_prod.yml बल्कि आधार config.yml से, के साथ शुरू करने के लिए उन्हें जगह है। –