2011-08-22 11 views
5

की उप-निर्देशिकाओं से संपत्ति फ़ाइलों की आवश्यकता है, मैं अपने ऐप को रेल 3.1 में अपग्रेड करने की कोशिश करने की प्रक्रिया में हूं, और मेरे पास बहुत सारी कस्टम जावास्क्रिप्ट फ़ाइलें हैं जिन्हें मैं नई संपत्ति पाइपलाइन में माइग्रेट करने का प्रयास कर रहा हूं ।संपत्ति पथ

मेरे वर्तमान (जो है, पूर्व 3.1) निर्देशिका संरचना की तरह कुछ है:

public/ 
    foo/ 
     model.js 
     controller.js 
     etc... 

तो, मैं lib/आस्तियों/javascripts करने के लिए इन के लिए कदम और foo/उपनिर्देशिका को बनाए रखने के (करने के लिए कोशिश कर रहा हूँ foo_model.js, foo_controller.js, आदि बनाने के बजाय)।

//= require foo/model 

और

//= require 'foo/model' 

लेकिन इन काम नहीं करते:

मेरी application.js में मैं करने की कोशिश की। हमेशा रेल मुझे एक त्रुटि पृष्ठ देता है और कहता है:

couldn't find file 'foo/model.js' 

मुझे लगता है कि चीजों को सही ढंग से शामिल हो अगर वे उपनिर्देशिका में नहीं कर रहे हैं, इसलिए मैं जानता हूँ कि यह सिर्फ है कि मेरे lib/संपत्ति निर्देशिका में नहीं है नहीं है परीक्षण किया पथ या कुछ शामिल करें। तो मुझे लगता है कि मैं बस सोच रहा हूं कि ऐसा करने का कोई तरीका है, या क्या मुझे निर्देशिकाओं को फ़्लैट करना चाहिए और foo_model.js और ऐसे का उपयोग करना चाहिए?

उत्तर

6

रेल की तरह लग रहा केवल संपत्ति रास्तों को उपनिर्देशिका में से एक स्तर जोड़ने

आप रेल कंसोल पर Rails.application.config.assets.paths चलाकर वर्तमान रास्तों से सलाह ले सकते

तरह application.rb पर अपने फ़ोल्डर्स की निरपेक्ष पथ को जोड़ने
config.assets.paths += ["/path/to/lib/assets/javascript/foo"] 
+0

तो Sprockets उपयोग वेबपेज (http://getsprockets.org/installation_and_usage) के अनुसार आप ऐसा करने में सक्षम होना चाहिए रहे हैं जैसे: // = लेकिन यह काम नहीं प्रतीत होता है। मुझे यकीन नहीं है कि यह एक बग है या अगर मैं कुछ गलत कर रहा हूं। यह मेरे लिए अधिक आदर्श लगता है, लेकिन आपका समाधान वह है जो वास्तव में काम करता है इसलिए मैं आपको क्रेडिट दे रहा हूं। :) – bratsche

1

यह सुनिश्चित नहीं है कि रेल केवल एक स्तर की उपनिर्देशिका क्यों जोड़ती हैं, लेकिन आप निश्चित रूप से config/application.rb में पाइपलाइन पर अतिरिक्त (पूरी तरह से योग्य) पथ जोड़ सकते हैं। डॉक्स जवाब करने के लिए नेतृत्व: http://guides.rubyonrails.org/asset_pipeline.html#asset-organization

उदाहरण के लिए:

config.assets.paths << "#{Rails.root}/app/assets/flash"

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