2012-01-26 17 views
5

मैं रेल 3.1 एप में सीकेडडिटर का उपयोग करने की कोशिश कर रहा हूं। मेरे पास एप/एसेट्स/जावास्क्रिप्ट/सीकेडिटर/में सीकेडिटर निर्देशिका है, जिसमें असम्पीडित और मॉड्यूलरलाइज्ड स्रोत जैसे बाहरी सामान शामिल हैं।रेलवे में संकलन और लोड करने के लिए सीकेडिटर संसाधन कैसे प्राप्त करें 3.1 संपत्ति पाइपलाइन

यह विकास में ठीक काम करता है। उत्पादन या स्टेजिंग वातावरण में, ckeditor को अपनी फाइलें नहीं मिल सकती हैं: config.js, lang/en.js skins/kama/editor.css। मैं देख सकता हूं कि इन फ़ाइलों को प्रीकंपिल्ड नहीं किया जा रहा है, जो समझ में आता है क्योंकि डिफ़ॉल्ट रूप से संपत्ति पाइपलाइन में शामिल नहीं होगा या /.css/ या /.js/ से मेल खाने वाली किसी भी चीज़ को प्रीकंपाइल नहीं किया जाएगा।

रेल डॉक्स और previous answers like this one के अनुसार, config.assets.precompile को आवश्यक फ़ाइलों को जोड़ने के लिए मुझे समाधान माना जाता है। हालांकि, व्यापक प्रयास के बावजूद मैं यह नहीं समझ सकता कि मुझे config.assets.precompile के साथ किस प्रारूप का उपयोग करना है। यह दस्तावेज नहीं है और कोई उदाहरण नहीं दिया गया है।

मैं गया है की कोशिश की स्पष्ट रूप से नाम से फ़ाइलों को जोड़ने:

config.assets.precompile << ['config.js', 'en.js', 'editor.css'] 

मैं जोड़ने regexes की कोशिश की है कि फ़ाइलों मिलान हो जाएगा:

config.assets.precompile << [ /.*config\.js/, /.*en.js/, /.*editor.css/ ] 

मैं कोशिश की है स्पष्ट रूप से पूर्ण पथ जोड़ना:

config.assets.precompile << File.join(Rails.root, 'app', 'assets', 'javascripts', 'ckeditor', 'config.js') 
(etc...) 

इन सभी मामलों में (और मैंने जो कुछ भी कोशिश की है) में, रेक संपत्तियां चला रही हैं: प्रीकंपाइल अभी भी उन फ़ाइलों को स्थानांतरित करने में विफल रहता है जिन्हें मुझे सार्वजनिक/संपत्तियों में चाहिए। सभी छवियां और इस तरह की जाती है, लेकिन तीन जावास्क्रिप्ट और/या सीएसएस फ़ाइलों को नहीं, सीकेएडिटर को चलाने की जरूरत है।

कोई विचार?

+0

आप कहाँ config.assets.precompile को जोड़कर कर रहे हैं से फ़ाइल lib/tasks/precompile_hook.rake और पेस्ट पाठ बनाएँ? –

उत्तर

1

आपके पास अपने कोड में एक वाक्यविन्यास त्रुटि है। प्रीकंपाइल विशेषता एक सरणी है।

आप इस तरह सरणी के लिए एक आइटम जोड़ सकते हैं:

config.assets.precompile << 'name_of_file.ext' 

अपने मूल्यों एक सरणी में हैं तो आप सरणी जोड़ने के लिए।

config.assets.precompile += [ /.*config\.js/, /.*en.js/, /.*editor.css/ ] 

आप संलग्न हैं तो आप एक सरणी precompile सरणी, जो नजरअंदाज कर दिया है अंदर नेस्टेड होगा।

2

मैंने इसी तरह के मुद्दों में भाग लिया है। मैं संपत्ति पाइपलाइन के बिना सीकेएडिटर का उपयोग कर समाप्त हुआ :)

कई रत्नों की कोशिश करने के बाद, उत्पादन वातावरण में कोई भी ठीक काम नहीं करता। मैं ckeditor को ऐप के public फ़ोल्डर में डाल दिया। यह संपत्ति पाइपलाइन प्रक्रिया पूरी तरह से छोड़ देता है और सीकेडिटर उत्पादन में भी ठीक काम करता है। हालांकि कोई संपत्ति प्री-संकलन हालांकि ...

रेल 3.1 का उपयोग, सीकेईडिटर 4.1। हालांकि यह एक पुराने धागा है, हो सकता है यह किसी की मदद कर सकता है ...

अद्यतन: इसके अलावा, आप अपने स्थानीय उत्पादन वातावरण पर परीक्षण कर रहे हैं, मत भूलना config/environments/production.rb

2

के लिए सच को serve_static_assets स्थापित करने के लिए मुझे डिफ़ॉल्ट प्रीकंपाइल कार्य ओवरराइड करके तय किया गया था (मैंने रेल 4 और सीकेडिटर 4 का उपयोग किया था)।

  1. जोड़ें config.assets.precompile += ['ckeditor/*']
  2. application.rb को application.js //= require ckeditor/init
  3. में इस उत्तर Precompile hook
+1

रेक फ़ाइल का नाम "lib/functions/precompile_hook.rake" होना चाहिए। –

+1

यह काम करता है। हालांकि, मैं टूलबार पर कोई छवि नहीं देख रहा हूं। ऐसा लगता है जैसे icons.png और कुछ अन्य आइकन छवि फ़ाइलें गायब हैं। कोई विचार? धन्यवाद। –

+0

क्या आप कुछ अतिरिक्त जानकारी प्रदान कर सकते हैं? रेल और सीकेडिटर का संस्करण। क्या ये छवियां प्रीकंपिल्ड हैं या नहीं? –

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