2011-10-04 11 views
9

बस रेल 3.1 में अनुकूलित करना शुरू किया, मैंने कॉफ़ीस्क्रिप्ट और सास लिखना शुरू किया और सब कुछ विकास में ठीक काम करता है। जब मैं उत्पादन में सर्वर चलाने के लिए, मैं सिर्फ मिलती है:रेल 3.1 संपत्तियों में उत्पादन में कोई फिंगरप्रिंट नहीं है

<link href="/stylesheets/application.css" media="screen" rel="stylesheet" type="text/css" /> 
    <script src="/javascripts/application.js" type="text/javascript"></script> 
पृष्ठ के स्रोत कोड में

, वहाँ कोई उत्पन्न hashCode है और दोनों की संपत्ति मार्ग त्रुटियां हैं:

Routing Error 
No route matches [GET] "/stylesheets/application.css" 

इस का कारण क्या है ? क्या मैं कुछ करना भूल गया? में वातावरण/production.rb

सेटिंग्स:

# Settings specified here will take precedence over those in config/application.rb 

    # Code is not reloaded between requests 
    config.cache_classes = true 

    # Full error reports are disabled and caching is turned on 
    config.consider_all_requests_local  = false 
    config.action_controller.perform_caching = true 

    # 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 



    # Don't fallback to assets pipeline if a precompiled asset is missed 
    config.assets.compile = false 

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

    config.active_support.deprecation = :notify 

आपको बहुत बहुत धन्यवाद।

अधिक जानकारी जोड़ें:

में लेआउट/application.html.erb

, मैं संपत्ति शामिल करने के लिए निम्नलिखित का उपयोग कर रहा:

<%= stylesheet_link_tag "application" %> 
    <%= javascript_include_tag "application" %> 
    <%= csrf_meta_tags %> 

और मैं bundle exec rake assets:precompile जो उत्पादन के बिना चलाता है की कोशिश की है कुछ भी और फिर rails s -e production चलाएं, समस्या बनी रहती है।

और मैंने config.assets.compile = true सेट करने की कोशिश की और फिर rails s -e production चलाएं, समस्या अभी भी बनी हुई है।

कृपया मदद करें।

अधिक जानकारी। मैंने देखा है कि संकलित जेएस और सीएसएस सार्वजनिक/संपत्ति फ़ोल्डर में उत्पन्न होते हैं, लेकिन उत्पादन वातावरण में, फ़ाइलों को हैश कोड के बिना शामिल किया जाता है।

सहायता।

समाधान: बस मेरे प्रोजेक्ट को फिर से जाँच की और पाया कि मूल कारण है जब मैं MongoDB के समर्थन के लिए application.rb संपादन किया गया था। मैंने गलती से

require "sprockets/railtie" 

इसे अपूर्णता तो सब कुछ ठीक है।

दूसरों के लिए मेरी रूकी गलती को याद दिलाने के लिए छोड़ दें।

आपको बहुत धन्यवाद रिचर्ड। आपका उत्तर अंतिम anwser नहीं है लेकिन यह बहुत मदद करता है, वास्तव में एक वोट वोट के लायक है।

उत्तर

3

चेक आप पाइपलाइन application.rb में चालू किया हुआ है:

config.assets.enabled = true

आप टैग लिखने के लिए सही सहायक तरीकों का उपयोग कर रहे हैं? सहायक तरीकों में पथ में/स्टाइलशीट और जावास्क्रिप्ट नहीं होना चाहिए। जैसा इस (ERB अंदर):

 
javascript_include_tag "application" 
stylesheet_link_tag "application" 

तुम भी तैनाती processs के हिस्से के रूप precompile कार्य चलाने की आवश्यकता होगी फ़ाइलें बनाने के लिए, के बाद से सेट किए गए गलत पर संकलित करें।

asset pipeline guide दिखाता है कि कैपिस्ट्रानो के साथ इसे कैसे सेट किया जाए।

+0

धन्यवाद रिचर्ड, मैंने मुख्य पोस्ट में अतिरिक्त जानकारी जोड़ दी है। क्या मुझे इस सुविधा को पाने के लिए कैपिस्ट्रानो का उपयोग करना है? मैं बस अपने स्थानीय पर "रेल एस उत्पादन" चलाने की कोशिश कर रहा हूं। – larryzhao

+0

यदि आप स्थानीय हैं, तो आपको इसे स्थानीय रूप से चलाने की ज़रूरत है। अगर आपको उत्पादन उत्पादन वातावरण में तैनात किया जाता है तो आपको केवल कैपिस्ट्रानो कार्य की आवश्यकता होती है। आपको ऐप को 3.1.1.rc2 पर अपग्रेड करें और कार्य को दोबारा शुरू करें। मुझे लगता है कि प्रीकंपाइल कार्य में कुछ फिक्स हैं जो इसे ठीक कर सकते हैं। –

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