2015-07-18 3 views
5

उत्पादन में, मेरी छवियों के सही पथ छवि टैग के साथ नहीं कहा जाता है, और md5 फिंगरप्रिंट जोड़ा नहीं जाता है। छवि नाम (उदा। "Pretty_picture.jpg") डेटाबेस में संग्रहीत हैं। प्रीकंपिलेशन फाइलें सभी सार्वजनिक फ़ोल्डर में प्रकट होती हैं जिनमें मैनिफेस्ट फ़ाइल भी शामिल है।रेल 4.2: छवि पथ और फिंगरप्रिंट केवल तब जोड़ा गया जब config.assets.compile = true

IMAGE_TAG साथ बुलाया:

image_tag @test_question.question.image 

मैं:

<img src="/images/pretty_picture.jpg"> 

अगर मैं config.assets.compile = production.rb में सच सेट छवि प्रदान की गई है और मैं:

<img src="/assets/images/pics/pretty/pretty_picture-e0df5012b6930cda4efaa866af22a63f.jpg" > 

मेरा हैक समाधान उपयोग करना है (HAML में)

%img{src: "/assets/"+Rails.application.assets.find_asset(@test_question.question.image).digest_path} 

production.rb में मैं

config.assets.digest = true 
config.assets.enabled = true 
config.serve_static_files = false 
config.assets.compile = false 

उत्पादन में सही पर config.assets.compile सेट करने की सलाह नहीं है। यह sprockets और संपत्ति पाइपलाइन की तरफ से बहुत अजीब व्यवहार की तरह लगता है। किसी भी विचार में image_tag के उपयोग के साथ क्या गलत है?

+0

मुझे एक ही समस्या है - हैक समाधान खोजने के लिए धन्यवाद - कम से कम मुझे कुछ कामकाजी कोड मिल गया है। –

+0

क्या इस समस्या का कोई गैर-हैक समाधान रहा है? मेरे साथ भी वही दिक्कत है। – user2012677

उत्तर

1

उत्पादन में, आपको निम्न कमांड के साथ, सर्वर शुरू करने से पहले संपत्ति precompile चाहिए (और यह स्वचालित रूप से यह हर बार जब आप को तैनात करने के लिए):

rake assets:precompile RAILS_ENV="production" 

और अपने production.rb में config.assets.compile = false रहते हैं। Asset Pipeline Guide में चेक करें।

+0

हां, संपत्तियों को सही वातावरण के लिए प्रीकंपिल्ड किया गया है और सर्वर पर कैपिस्ट्रानो के साथ तैनात किया गया है। जैसा कि प्रश्न स्टेम में बताया गया है, संपत्ति सार्वजनिक फ़ोल्डर में मौजूद होनी चाहिए, और config.assets.compile = false। छवियों को दृश्य में सही ढंग से संदर्भित नहीं किया गया है। – user3291025

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