2013-08-31 4 views
15

मैं रेल में एक ऑडियो फ़ाइल का उपयोग करने के कोशिश कर रहा हूँ लाता है। मैंने app\assets\ के तहत एक फ़ोल्डर audios बनाया। ताकि मैं app\publicऑडियो संपत्ति कोई मार्ग से मेल खाता है

के तहत फ़ाइल डाल करने के लिए अगर मैं URL/audios/audio_file.wav से URL/assets/audio_file.wav यह काम करता है के लिए यूआरएल को बदलने अभी मैं

ActionController::RoutingError (No route matches [GET] "/audios/audio_file.wav") 

हो रही है की जरूरत नहीं है मैं precompile संपत्ति का उपयोग करना चाहते हैं। मैं समस्या को कैसे ठीक कर सकता हूं? सही तरीका क्या है?

उत्तर

21

सबसे पहले, अगर आपको पहले से ही इसका एहसास नहीं हुआ है: आपका नया app/assets/audios फ़ोल्डर लोड पथ में पहले से ही है ... आपको बस इसे चुनने के लिए स्प्राकेट्स के लिए अपने सर्वर को पुनरारंभ करने की आवश्यकता है।

विकास, संपत्ति संबंधित यूआरएल: /assets/<asset file name> पर उपलब्ध हैं।

उदाहरण के लिए, मान लें कि आपकी WAV फ़ाइल फाइल सिस्टम में /app/assets/audios/audio_file.wav पर स्थित है, यह ब्राउज़र में संबंधित यूआरएल /assets/audio_file.wav पर पहुंच योग्य होगा। इसका कारण यह है Sprockets/देव-रेल /app/assets फ़ोल्डर और उसकी उप-खोज करने के लिए जब संपत्ति का पता लगाने को जानता है।

उत्पादन, संपत्ति प्रीकंपिलेशन (आमतौर पर) तैनाती पर होता है। इस समय, आपकी WAV फ़ाइल को कॉपी किया गया है उदा। /public/assets/audio_file-<MD5 fingerprint>.wav और सापेक्ष यूआरएल पर उपलब्ध है: /assets/audio_file-<MD5 fingerprint>.wav

क्योंकि विकास और उत्पादन के बीच इस्तेमाल किया अलग नामकरण शैलियों की

, किसी भी समय आप एक परिसंपत्ति आप एक सहायक विधि का उपयोग कर ऐसा करना चाहिए का उल्लेख करना चाहते हैं (यहां तक ​​कि सीएसएस में!)। यही है, उत्पादन में एमडी 5 फिंगरप्रिंट शामिल है, जबकि विकास नहीं करता है।

  • छवियों के लिए:: - एक छवि फ़ाइल है कि फाइल सिस्टम पर /app/assets/images/homes/logo.png में रहती दिया <%= image_tag('homes/logo.png') %> लेकिन आप इतने लंबे समय के रूप में आप एक सहायक का उपयोग करने वाले के बारे में कोई चिंता नहीं है।
  • ऑडियो फ़ाइलों के रूप में गैर मानक आस्तियों, के लिए: <%= asset_path('audio_file.wav') %>, जो /assets/audio_file.wav के एक रिश्तेदार पथ का उत्पादन होगा।
संबंधित मुद्दे