2013-02-04 34 views
11

मैं Heroku करने के लिए एक रेल एप्लिकेशन को धक्का दिया और निम्न समस्या में चल रहा है पर रखने की है:रेल संपत्ति precompile सिर्फ काम नहीं कर रहा

मैं अपने मुख्य css.scss फ़ाइल में परिवर्तन (आस्तियों/स्टाइलशीट में) बचा सकते हैं या परिसंपत्तियों/छवियों में छवियों के लिए, गिट करने के लिए धक्का, उसके पोकू को धक्का दें, और पृष्ठ को फिर से लोड करें, केवल यह पता लगाने के लिए कि इन संपत्तियों को बिल्कुल लोड नहीं किया गया है।

यह भी था स्थानीय सर्वर पर एक मामूली समस्या है, लेकिन में प्रवेश:

rake assets:precompile 

और स्थानीय सर्वर आमतौर पर काम फिर से लोड करने,

heroku run rake assets:precompile 

कर जबकि और उसके बाद फिर से धक्का कुछ नहीं करता है। मैंने जानकारी के लिए चारों ओर काम किया है और कुछ विशेष रूप से सहायक नहीं मिला है।

ध्यान दें

, मेरे config/application.rb में (इनमें से कुछ का परिणाम कहा आसपास मछली पकड़ने):

में
# Enable the asset pipeline 
config.assets.enabled = true 

if defined?(Bundler) 
    # If you precompile assets before deploying to production, use this line 
    Bundler.require(*Rails.groups(:assets => %w(development test))) 
    # If you want your assets lazily compiled in production, use this line 
    # Bundler.require(:default, :assets, Rails.env) 
end 

config/वातावरण/production.rb:

# Disable Rails's static asset server (Apache or nginx will already do this) 
config.serve_static_assets = false 

# Compress JavaScripts and CSS 
config.assets.compress = true 

# Fallback to assets pipeline if a precompiled asset is missed 
config.assets.compile = true 

# Generate digests for assets URLs 
config.assets.digest = true 

अतिरिक्त संभावित हित में, जब मैं उसकेोकू को दबाता हूं, तो यह कहता है, अन्य चीजों के साथ, यह:

Preparing app for Rails asset pipeline 
     Detected manifest.yml, assuming assets were compiled locally 
-----> Rails plugin injection 
     Injecting rails_log_stdout 
     Injecting rails3_serve_static_assets 

और

Installing dependencies using Bundler version 1.3.0.pre.5 
Running: bundle install --without development:test --path vendor/bundle --binstubs vendor/bundle/bin --deployment 

मैं रेल 3 के साथ सीखा है और वास्तव में नहीं जानता कि कैसे संपत्ति पाइपलाइन अगर मैं एक बेवकूफ जा रहा हूँ और नहीं देते हुए, पिछले संस्करण में उपलब्ध था से अलग है बहुत माफी अतिव्यापी और/या मेरी विन्यास फाइलों में विरोधाभासी सेटिंग्स।

किसी भी मदद की सराहना करेंगे। यह एक सिरदर्द रहा है।

उत्तर

13

ऐसा लगता है कि आप अपनी स्थानीय रूप से संकलित संपत्तियों को गिट करने और उन्हें धक्का देने के लिए जोड़ रहे हैं और नतीजतन हेरोकू पुश पर आपकी संपत्तियों को संकलित नहीं कर रहा है। यह सुनिश्चित करने के लिए जांचें कि आप गिट करने के लिए सार्वजनिक/संपत्ति निर्देशिका नहीं जोड़ रहे हैं।

+1

तो क्या आप .gitignore फ़ाइल में जोड़ें/public/assets का मतलब है? क्या वह और "गिट आरएम" निर्देशिका है? या इसके भीतर विशेष फाइलों को हटा दें? माफ़ कीजिये। मुझे नहीं पता कि डायरेक्टरी पाइपलाइन के पास निर्देशिका का क्या संबंध है, इसलिए मुझे सच में यकीन नहीं है कि कैसे अपने खराब घटकों को पीछे से जोड़ना है। – Sasha

+3

उस निर्देशिका को गिट से निकालें और फिर इसे गिट अनदेखा में भी जोड़ें। यह निर्देशिका वह जगह है जहां रेक संपत्तियों को चलाने के दौरान सभी संपत्तियों को संकलित किया जाता है: प्रीकंपाइल। –

+0

हटाए गए फ़ाइलों को सार्वजनिक/संपत्ति/मास्टर में प्रतिबद्ध करना सुनिश्चित करें! इसलिए आप एक खाली सार्वजनिक/संपत्ति/निर्देशिका को उसकेोकू में धक्का देते हैं। आपको हेरोकू को स्वचालित रूप से रेक संपत्तियों को कॉल करना चाहिए: प्रीकंपाइल – Bruno