2011-10-03 12 views
7

मैंने हाल ही में रेल 3.0 से 3.1 तक एक ऐप अपग्रेड किया है। मैं किसी भी निर्देश मैं संपत्ति पाइपलाइन को सक्षम करने के लिए मिल सकता है का पालन किया है लेकिन यह हमेशा विफल रहता है जब उत्पादन वातावरण में:रेल संपत्ति परिसंपत्ति पाइपलाइन उत्पादन वातावरण में काम नहीं कर रही है?

<%= javascript_include_tag "application" %> 

मुझे देता है

<script src="/javascripts/application.js" type="text/javascript"></script> 

जो एक डाइजेस्ट याद आ रही है और मैं निम्न त्रुटि:

cache: [GET /javascripts/application.js] miss 
Started GET "/javascripts/application.js" for 127.0.0.1 at 2011-10-03 23:31:36 +0100 
ActionController::RoutingError (No route matches [GET] "/javascripts/application.js"): 

मैं application.rb में इन सेटिंग्स के रूपांतरों की कोशिश की है:

require File.expand_path('../boot', __FILE__) 

#require 'rails/all' 
require "action_controller/railtie" 
require "action_mailer/railtie" 
require "active_resource/railtie" 
require "rails/test_unit/railtie" 

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 


module Blog 
    class Application < Rails::Application 
    config.autoload_paths += %W(#{config.root}/lib) 
    config.encoding = "utf-8" 
    config.filter_parameters += [:password] 
    config.assets.enabled = true 
    config.assets.version = '1.0' 
    end 
end 

और पूर्ण production.rb (ऋण कुछ टिप्पणियाँ)

Blog::Application.configure do 
    config.cache_classes = true 
    config.consider_all_requests_local  = false 
    config.action_controller.perform_caching = true 
    config.serve_static_assets = false 
    config.assets.compress = true 
    config.assets.compile = false 
    config.assets.digest = true 
    config.i18n.fallbacks = true 
    config.active_support.deprecation = :notify 
end 

मैं rake assets:precompile कार्य भाग गया है।

क्या मुझे कोई स्पष्ट कदम याद आ रहा है?

संपादित करें: कुछ अतिरिक्त विवरण:

मेरी संपत्तियां app/assets फ़ोल्डर में हैं। app/assets/images, app/assets/javascripts, app/assets/stylesheets, आदि

मैं नाम और डाइजेस्ट के साथ मेरी public/assets निर्देशिका में उत्पन्न मेरी फ़ाइलें देखें।

app/assets/javascripts/application.js वास्तव में public/assets/application-6ec417a53cb2bdb949966a153a61e7b1.js जैसे कुछ संकलित करता है वे public निर्देशिका में समाप्त होते हैं।

उत्तर

12

स्पॉकेट लोड नहीं हो रहा है।

रेल के पिछले संस्करण में सक्रिय रिकॉर्ड को दूर करने के प्रयास में (एक ला इस सवाल Remove ActiveRecord in Rails 3 (beta)) require 'rails/all'

require "action_controller/railtie" 
require "action_mailer/railtie" 
require "active_resource/railtie" 
require "rails/test_unit/railtie" 

ने उनकी जगह ली यहाँ क्या याद आ रही थी था sprockets/railtie

+0

मैं आरएसपीसी का उपयोग कर रहा था, और इसलिए test_unit टिप्पणी के साथ एक समान सेटअप था। मुझे नहीं पता था कि स्पॉकेट्स की अपनी खुद की रेलची थी। इस के लिए बहुत बहुत धन्यवाद। –

+0

भयानक पकड़ बी) – dexter

3

देखें Upgrading to Rails 3.1 Railscast

यकीन है कि अपनी संपत्ति app/assets फ़ोल्डर में हैं। app/assets/images, app/assets/javascripts, app/assets/stylesheets, आदि

निष्पादित rake assets:precompile

आप नाम और डाइजेस्ट के साथ अपने app/public/assets निर्देशिका में उत्पन्न फ़ाइलों देखना चाहिए यदि सक्षम।

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

आप वेब पेज स्रोत को देखें, तो आप देखना चाहिए:

app/assets/javascripts/application.js संपत्ति एक डाइजेस्ट के साथ ऊपर के लिए इसी तरह के नाम पर है, तो /assets/application-6ec417a53cb2bdb949966a153a61e7b1.js

के संकलन होगा, Production.rb निम्नलिखित config होना चाहिए निम्न के जैसा कुछ:

<script src="/assets/application-6ec417a53cb2bdb949966a153a61e7b1.js" type="text/javascript"></script> 

पर जाकर फ़ाइल को मैन्युअल रूप से लोड करने का प्रयास करें

फ़ाइल को लोड करना चाहिए, अगर अनुमतियों और आगे के लॉग की जांच न करें।

+0

धन्यवाद, मैं देखा था मेरे परिवर्तन करते समय रेल कास्ट किया जाता है। मैंने आपके सुझावों को हल करने के लिए अपना उत्तर अपडेट कर दिया है। – tpower

+0

क्या आप अपना 'application.rb' और' production.rb' पोस्ट कर सकते हैं? – Joey

+0

मैंने प्रश्न में पूर्ण 'application.rb' और' production.rb' जोड़ा है। पूर्ण रेपो: https://github.com/trevorpower/trevorpower-com – tpower

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