2010-11-25 9 views
7

मेरी रेल (v2.3.8) ऐप में मेरे पास एक स्थिर संसाधन फ़ाइल है जिसे मैंने /public/myfile.kml पर रखा है किसी भी विशेष मार्ग के लिए कोई आवश्यकता नहीं है। आरबी सही सेटिंग?रेल 2 में फ़ाइल के लिए यूआरएल उत्पन्न करें ईआरबी देखें

यह http://localhost:3000/myfile.kml

पर ठीक जब मैं (यात्री करने के लिए) को तैनात यह प्रतीत होता है पर http://myserver/myappname/myfile.kml

सभी अब तक अच्छी तरह से है अप में कार्य करता है ...

मैं एक दृश्य (एक ERB फ़ाइल) जो जावास्क्रिप्ट को बाहर निकाल देता है जिसे इस फ़ाइल को संदर्भित करने की आवश्यकता होती है। आउटपुट को स्थानीयहोस्ट पर '/myfile.kml' होना चाहिए, और उत्पादन में '/myappname/myfile.kml' होना चाहिए, या शायद ऊपर के रूप में पूर्ण URL, या हो सकता है कि एक सापेक्ष यूआरएल '../../ ../ '(रीस्टफुल यूआरएल के साथ अजीब)।

क्या मुझे <% = url_for 'myfile.kml'%> जैसे कुछ करने में सक्षम होना चाहिए?

या '<% = ROOT_URL%>/myfile.kml'

मुझे पता है कि इस सवाल का पागलपन की हद तक आसान जवाब है, लेकिन ईमानदारी से मैं इसे पाने के लिए कोई भाग्यशाली रहे हैं। बहुत से लोग 'root_url' के बारे में बात करते हैं लेकिन वह क्या है? एक चर मैं एक दृश्य में संदर्भित कर सकते हैं? यह अपरिभाषित है।

उत्तर

2
'<%= ENV["RAILS_RELATIVE_URL_ROOT"] %>/myfile.kml' 
2

मुझे रेल 2.3.8 के बारे में निश्चित नहीं है, लेकिन रेल 3 में यह मान गलत पर डिफ़ॉल्ट है।

संपादित config/environments/production.rb और सेट:

config.serve_static_assets = true

इसके अलावा, यहाँ एक ब्लॉग पोस्ट को एक स्थिर संसाधन को जोड़ने (फ़ेविकॉन) http://ilconnettivo.wordpress.com/2008/07/28/favicon-on-rails/

+0

खैर 'compute_public_path' काम करता है, हालांकि यह कुछ 'कैश पर्दाफाश' पथ के अंत में gubbins में सामान, है जो मैं नहीं चाहता http://apidock.com/rails/ActionView/Helpers/AssetTagHelper/compute_public_path –

2

<%= RAILS_ROOT + "/public/myfile.kml" %>

+0

यह सभी वातावरणों में समान रूप से काम करेगा –

0

क्यों न केवल अपने उत्पादन पर्यावरण को स्थानीय रूप से दोहराएं? एक वेबसर्वर बहुत संसाधन भूखा नहीं है और यह कुछ पारिस्थितिकी तंत्र कॉन्फ़िगरेशन समस्याओं को हल करने में आपकी सहायता कर सकता है जैसे आप यहां देख रहे हैं।

1

rake routes का निरीक्षण दृश्यों में उपयोग के लिए सहायक root_path का खुलासा करता है। उदाहरण के लिए <%= root_path + 'myfile.kml' %> डिफ़ॉल्ट रूप से सार्वजनिक/रेल अनुप्रयोग में फ़ाइलों के लिए मानचित्रित किया जाएगा।

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