2010-11-24 14 views
6

मैं एक इंजन बना रहा हूं जिसे मैंने एक मणि (gmaps4rails) के रूप में बंडल किया है। मैंने अपने रेल ऐप के सार्वजनिक/सार्वजनिक में अपने इंजन के सार्वजनिक/प्रतिलिपि बनाई।रेल 3 इंजन और स्टेटिक संपत्ति

सब कुछ विकास में ठीक काम करता है लेकिन उत्पादन में काम करने में विफल रहता है: यह स्थिर संपत्ति (मेरे इंजन & मेरा मुख्य ऐप) नहीं मिलता है।

लॉग निम्न (सिर्फ एक अमूर्त) बता:

Started GET "/javascripts/application.js?1286294679" for 127.0.0.1 at Wed Nov 24 00:22:20 +0100 2010 

ActionController::RoutingError (No route matches "/javascripts/application.js"): 


Rendered /Users/me/.rvm/rubies/ree-1.8.7-2010.02/lib/ruby/gems/1.8/gems/actionpack-3.0.3/lib/action_dispatch/middleware/templates/rescues/routing_error.erb within rescues/layout (1.1ms) 


Started GET "/stylesheets/gmaps4rails.css?1290554221" for 127.0.0.1 at Wed Nov 24 00:22:20 +0100 2010 

ActionController::RoutingError (No route matches "/stylesheets/gmaps4rails.css"): 

मैं कुछ चीजें किया है: मेरे ऐप की production.rb में

  1. , मैं सेट:

    config.serve_static_assets = true

    यह समस्या हल करता है लेकिन पर्याप्त सुरुचिपूर्ण नहीं है, मैं चाहता हूं इसे गलत करने के लिए ep और इंजन में कॉन्फ़िगरेशन जोड़ें :)

  2. मैंने सफलता के बिना here सलाह का पालन किया।

    initializer "static assets" do |app| 
        app.middleware.use ::ActionDispatch::Static, "#{root}/public" 
    end 
    

    इस क्रम में एप्लिकेशन के साथ अपने रत्न के/सार्वजनिक निर्देशिका में मर्ज हो जाएगा:

उत्तर

7

प्रदर्शन कारण के लिए, उत्पादन मोड में स्थाई संपत्ति सेवा अक्षम है। आपके वेबसर्वर को एसोसिएशन संपत्तियों की सेवा के लिए कॉन्फ़िगर किया जाना चाहिए।

यदि आप nginx को वेबसर्वर के रूप में उपयोग कर रहे हैं तो discussion देखें।

1

आप अपने रेल को यह जोड़ने :: इंजन वर्ग कोशिश की है।

+0

आपके उत्तर के लिए धन्यवाद, मैंने कोशिश की लेकिन यह कोई फर्क नहीं पड़ता :) – apneadiving

5

रेल 3.x में

config.serve_static_assets = आप एक संपत्ति सर्वर का उपयोग कर रहे हैं ग्रहण सच

डिफ़ॉल्ट रेल द्वारा config/वातावरण/production.rb में इस सेट करने का प्रयास (lightttp , nginx या अपाचे)

0

मुझे रास्ते के बारे में बहुत कुछ पता नहीं है, रत्न पैक/बनाए गए हैं। लेकिन आप ऐप सार्वजनिक फ़ोल्डर में अपने रत्न सार्वजनिक फ़ोल्डर की छवियों/जेएस/सीएसएस सामान की प्रतिलिपि क्यों नहीं बना सकते? मैंने बस ऐसा किया और यह मेरे लिए काम किया। क्या यह काम नहीं है?

+2

इसका मतलब है कि आपके मणि का उपयोग करने वाले हर व्यक्ति को सार्वजनिक फ़ाइलों को मैन्युअल रूप से अपने मुख्य ऐप पर कॉपी करना होगा ... नहीं, यह नहीं है काम किया! –

3

अपने इंजन में, बदल देते हैं:

initializer "static assets" do |app| 
    app.middleware.use ::ActionDispatch::Static, "#{root}/public" 
end 

साथ:

initializer "static assets" do |app| 
     app.middleware.insert_before(::ActionDispatch::Static, ::ActionDispatch::Static, "#{root}/public") 
end 
1

मैं एक ऐसी ही समस्या एक रेल 3.1 इंजन बढ़ते था। मुझे मंच और उत्पादन में खाली संपत्ति मिल रही थी।

मुझे http://jonswope.com/2010/07/25/rails-3-engines-plugins-and-static-assets/comment-page-1/#comment-87 पर एक समाधान मिला और रेल 3 के अनुरूप इसे tweaked।1 संपत्ति स्थान:

initializer "static assets" do |app| 
    app.middleware.insert_before ::Rack::Lock, ::ActionDispatch::Static, "#{root}/app/assets" 
end 

मुझे लगता है कि एक और अधिक सुरुचिपूर्ण तरीका है लेकिन मेरे प्रयास ने आज कुछ भी पर्याप्त नहीं किया।

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