ruby on rails - রেল 3.1.0 অ্যাকশনভিউ:: টেমপ্লেট:: ত্রুটি(অ্যাপ্লিকেশন.css পূর্বনির্ধারিত নয়)




ruby-on-rails asset-pipeline (10)

আমি একটি ইনডেক্স ফাংশন সহ একটি সহজ পৃষ্ঠা নিয়ামক দিয়ে একটি মৌলিক রেলের অ্যাপ্লিকেশন তৈরি করেছি এবং যখন আমি পৃষ্ঠা লোড করি তখন আমি এটি পেতে পারি:

ActionView::Template::Error (application.css isn't precompiled):
    2: <html>
    3: <head>
    4:   <title>Demo</title>
    5:   <%= stylesheet_link_tag    "application" %>
    6:   <%= javascript_include_tag "application" %>
    7:   <%= csrf_meta_tags %>
    8: </head>
  app/views/layouts/application.html.erb:5:in `_app_views_layouts_application_html_erb__43625033_88530400'

Gemfile

source 'http://rubygems.org'

gem 'rails', '3.1.0'

# Bundle edge Rails instead:
# gem 'rails',     :git => 'git://github.com/rails/rails.git'

gem 'sqlite3'

gem 'execjs'
gem 'therubyracer'

# Gems used only for assets and not required
# in production environments by default.
group :assets do
  gem 'sass-rails', "  ~> 3.1.0"
  gem 'coffee-rails', "~> 3.1.0"
  gem 'uglifier'
end

gem 'jquery-rails'

# Use unicorn as the web server
# gem 'unicorn'

# Deploy with Capistrano
# gem 'capistrano'

# To use debugger
# gem 'ruby-debug19', :require => 'ruby-debug'

group :test do
  # Pretty printed test output
  gem 'turn', :require => false
end

Capistrano ব্যবহারকারীর জন্য দ্রুত ফিক্সটি এই লাইনটিকে ক্যাপফাইলে রাখতে হবে

# Uncomment if you are using Rails' asset pipeline
load 'deploy/assets'

আপনি যদি production.rb মিথ্যাতে config.assets.compile সেট করেন এবং আপনার সম্পদগুলিকে পূর্বনির্ধারিত করে তবে আপনি আরও ভাল পারফরম্যান্স পাবেন। আপনি এই rake টাস্ক সঙ্গে precompile করতে পারেন:

bundle exec rake assets:precompile

আপনি Capistrano ব্যবহার করা হয়, সংস্করণ 2.8.0 সময় নিয়োজিত এ পরিচালনা করার জন্য একটি রেসিপি আছে। আরো তথ্যের জন্য, অ্যাসেট পাইপলাইন গাইডের "উত্পাদনে" বিভাগটি http://guides.rubyonrails.org/asset_pipeline.html : http://guides.rubyonrails.org/asset_pipeline.html


আপনি সম্ভবত আপনি ব্যবহার করছেন CSS একটি syntax error আছে।

এই কমান্ড চালান

$ bundle exec rake assets:precompile RAILS_ENV=development --trace

এটা ব্যতিক্রম, যে সংশোধন করা হবে এবং আপনি সব সম্পন্ন করা হয়।

ধন্যবাদ


আমি আজ এই ত্রুটি বার্তা মধ্যে দৌড়ে এবং আমার বিশেষ ক্ষেত্রে আমার রেজল্যুশন রেজল্যুশন চেয়েছিলেন। এটি দেখায় যে আমার সমস্যাটি ছিল যে আমার সিএসএস ফাইলগুলির মধ্যে একটি ক্লোজিং ব্রেস অনুপস্থিত ছিল এবং এই ফাইলটি সংকলন করা হচ্ছে না। আপনার যদি আপনার কোনও স্বয়ংক্রিয় প্রক্রিয়া থাকে যা আপনার উত্পাদন পরিবেশের জন্য সবকিছু সেট করে (সম্পদ প্রিমিপাইল সহ) সেট করে তবে এটি লক্ষ্য করা কঠিন।


আমি এই সমস্যা ছিল, যেখানে precompiling ছাড়া উত্পাদন চালানোর চেষ্টা করছেন এখনও এটা precompiled ত্রুটি নিক্ষেপ করা হবে। আমি পরিবর্তন ছিল যা লাইন মন্তব্য ছিল। Rb:

  # 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)

এখানে দ্রুত ফিক্স:

যদি আপনি capistrano ব্যবহার করেন তবে এটি আপনার deploy.rb এ যুক্ত করুন:

after 'deploy:update_code' do
  run "cd #{release_path}; RAILS_ENV=production rake assets:precompile"
end

টুপি স্থাপন


ডিফল্টরূপে, রেলগুলি অনুমান করে যে আপনার ফাইলগুলির উৎপাদন পরিবেশে পূর্বনির্ধারিত আছে, যদি আপনি লাইভ কম্পাইলিং (রানটাইম সময় আপনার সম্পদ কম্পাইল) ব্যবহার করতে চান তবে আপনাকে অবশ্যই config.assets.com প্লেলে সত্য সেট করতে হবে।

# config/environments/production.rb
...
config.assets.compile = true
...

আপনি প্রাককামিত সম্পদগুলি ব্যবহার করার সময় স্প্রোকেটগুলিতে ফাল্যাকব করার জন্য এই বিকল্পটি ব্যবহার করতে পারেন তবে কোনও অনুপস্থিত পূর্বনির্ধারিত ফাইল রয়েছে।

যদি config.assets.compile বিকল্পটি মিথ্যাতে সেট করা থাকে এবং পূর্বনির্ধারিত ফাইলগুলি অনুপস্থিত থাকে তবে আপনি একটি "AssetNoPrecompiledError" পাবেন যা অনুপস্থিত ফাইলের নামটি নির্দেশ করে।


যারা এটি পড়ছে তাদের জন্য কিন্তু application.css css নিয়ে সমস্যা নেই এবং পরিবর্তে তাদের নিজস্ব CSS ক্লাসগুলির সাথে যেমন admin.css , base.css ইত্যাদি।

সমাধান উল্লেখ হিসাবে ব্যবহার করা হয়

bundle exec rake assets:precompile

এবং স্টাইলশীট রেফারেন্সে শুধু রেফারেন্স application.css

<%= stylesheet_link_tag    "application", :media => "all" %>

যেহেতু সম্পদ পাইপলাইন application.css আপনার স্টাইলশীট সব precompile হবে। সম্পদ পাইপলাইন ব্যবহার করার সময় এটি অন্য কোন রেফারেন্স ব্যবহার করে ডেভেলপমেন্টেও ঘটে।


হিরোকুতে এটি ঠিক করার আরেকটি উপায়: আপনার Rakefile প্রতিশ্রুতিবদ্ধ এবং push করা হয়েছে তা নিশ্চিত করুন।


হেরোকু সার্ভারে (পঠনযোগ্য ফাইল সিস্টেম), যদি আপনি CSS এর রানটাইম সংকলন চান (এটি সুপারিশ করা হয় না কিন্তু আপনি এটি করতে পারেন), নিশ্চিত করুন যে আপনি নীচের মত সেটিংস করেছেন -

# inside config/application.rb
config.assets.enabled = true
config.assets.prefix = Rails.root.join('tmp/assets').to_s

# If you are using sass then keep gem outside of asset group
 gem 'sass-rails',   '3.1.4'

# inside config/environments/production.rb
config.assets.compile = true