কেন রেলস 4 জেমফাইলে "সম্পদ" গোষ্ঠীর জন্য সমর্থন বাদ দিয়েছে


99

3 assetsরেলগুলিতে , সম্পদ পাইপলাইনে সম্পদ তৈরি করতে একচেটিয়াভাবে ব্যবহৃত রত্নগুলি সঠিকভাবে জেমফিলের গোষ্ঠীতে স্থাপন করা হয়েছিল :

...

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

  # See https://github.com/sstephenson/execjs#readme for more supported runtimes
  # gem 'therubyracer', :platforms => :ruby
end

এখন, (এখনও চলছে) আপগ্রেড ডকুমেন্টেশন অনুসারে :

রেলস 4.0 জেমফিল থেকে সম্পদ গোষ্ঠীটি সরিয়েছে। আপগ্রেড করার সময় আপনার গেমফিল থেকে সেই লাইনটি সরিয়ে ফেলতে হবে।

নিশ্চিতভাবেই, আরসি 1 দিয়ে একটি নতুন প্রকল্প তৈরি করার ফলে কোনও গোষ্ঠীর বাইরে ডিফল্টরূপে সম্পদ-সম্পর্কিত রত্ন অন্তর্ভুক্ত একটি রত্ন পাবে:

source 'https://rubygems.org'

# Bundle edge Rails instead: gem 'rails', github: 'rails/rails'
gem 'rails', '4.0.0.rc1'

# Use sqlite3 as the database for Active Record
gem 'sqlite3'

# Use SCSS for stylesheets
gem 'sass-rails', '~> 4.0.0.rc1'

# Use Uglifier as compressor for JavaScript assets
gem 'uglifier', '>= 1.3.0'

# Use CoffeeScript for .js.coffee assets and views
gem 'coffee-rails', '~> 4.0.0'

# See https://github.com/sstephenson/execjs#readme for more supported runtimes
# gem 'therubyracer', platforms: :ruby

...

এর অর্থ কি এই রত্নগুলি এখন ডিফল্টরূপে প্রযোজনা তৈরিতে বান্ডিল করা হবে? যদি তাই হয় তবে কেন হৃদয়ের পরিবর্তন? 4 রেলগুলি কি উত্পাদনে সম্পদের গতিশীল প্রজন্মের দিকে এগিয়ে চলেছে?


4
আমি এখনও "সম্পদ গোষ্ঠী" এর উদ্দেশ্য কী ছিল এবং কীভাবে 4 রেলগুলিতে সম্পদ গোষ্ঠীটিকে অপ্রয়োজনীয় করে তুলেছিলাম তা এখনও পাই না।
মিচিয়েল ডি মেরে

23
"সম্পদ গোষ্ঠী" বিভিন্ন ব্যক্তির কাছে আলাদা জিনিস ছিল। আমি রত্নগুলি রাখার জায়গা হিসাবে এটি ব্যবহার করেছি যেগুলি উত্পাদন করতে আমার কাছে বান্ডিল লাগবে না। তবে গৃহীত উত্তরের সাথে সংযুক্ত কথোপকথনটি বিচার করে, কমপক্ষে রেল কোরের কিছু লোক এটি নিশ্চিত করার জন্য এটি ব্যবহার করেছিল যে প্রাক-কম্পম্পাইল সম্পদ 404 টি উত্পাদন ব্যর্থ হয়েছে (নীরবে স্বতঃ-উত্পাদনের পরিবর্তে যা দরিদ্রের দিকে পরিচালিত করবে) কর্মক্ষমতা). যা পরিবর্তিত হয়েছে তা রেল 4 4 আর সম্পদ স্বয়ংক্রিয়ভাবে উত্পন্ন করে না, সুতরাং "সম্পদ গোষ্ঠী" কার্যবিবরণী (রেল কোর যেমন দেখেছিল) সরানো হয়েছে।
জেমনস

এটি এখনও পরিষ্কার ব্যাখ্যা। যদি আপনি এটি একটি উত্তরে রাখেন তবে অনুগ্রহ আপনার is
মিচিয়েল ডি মেরে

@ মিচিয়েলডেয়ার আমার নিজের প্রশ্নের জন্য অনুগ্রহ পেতে আমি অদ্ভুত বোধ করব ;-) যদি আপনার মনে হয় তবে ফিলিপ গিয়াস্টিকে (স্বীকৃত উত্তর) তিনি আমাকে অনুদান দিতে পারেন কারণ তিনি আমাকে বুঝতে সাহায্য করেছিলেন।
জিম্মন

4
ভবিষ্যতে লোকদের জন্য একটি সতর্কতা: আপনি যদি রেল আপগ্রেড গাইডটিকে উপেক্ষা করে সম্পদ গোষ্ঠীটিকে আপনার জেমফাইলে রাখতে চান, তবে মনে রাখবেন যে উত্পাদনগুলিতে সম্পদ সংকলন করার সময় রেলগুলি আর স্বয়ংক্রিয়ভাবে সম্পদ গোষ্ঠীর প্রয়োজন পড়বে না। হয় আপনি নিজেই তা করতে হবে, বা আপনার বিল্ড পরিবেশে উত্পাদনে সম্পদ প্রাক্পম্পাইল করতে কমান্ডের আগে RAILS_GROUPS=assets(দেখুন Rails.groups) যুক্ত করতে হবে ।
Ajedi32

উত্তর:


100

পূর্বে সম্পদের গোষ্ঠীটি উত্পাদনে অনিচ্ছাকৃত সংকলন এড়াতে বিদ্যমান ছিল। 4 রেলগুলি আর এর মতো আচরণ করে না, সম্পদ গোষ্ঠীটি অপসারণ করা বোধগম্য হয়েছিল।

এই আরো বিস্তারিত ব্যাখ্যা করা হয় মধ্যে কমিট যে পরিবর্তন করেছেন। আমি আসল উত্তর দিয়ে কিছু উদ্ধৃতি বের করেছি।

আপনি যদি কফি টেম্পলেট ব্যবহার করেন এবং এখন যে সম্পদগুলি আর উত্পাদনের চাহিদার উপর পূর্বনির্মাণিত হয় না তবে কিছু রত্নের প্রয়োজন হতে পারে (উত্পাদনে) কফি-রেলের মতো।

(উত্পাদনের চাহিদার উপর পূর্ববর্তী নয়) এর অর্থ হল যে আপনি যদি 3.2.x উত্পাদনের পরিবেশে সেই রত্নগুলি রাখেন এবং প্রাক্পম্পাইল করতে ভুলে যান, তবে রেলগুলি বিকাশে যা ঠিক তা করবে, অনুরোধ করা সম্পদের প্রাক্পম্পাইল করবে। রেলস 4 এ এটি আর সত্য নয়, সুতরাং যদি আপনি কাজগুলি ব্যবহার করে সম্পদের প্রাক্কম্পাইল না করেন তবে সম্পদের অনুরোধ করা হলে আপনি 404 পাবেন।


32
এটি কি স্মৃতি সংরক্ষণ করে না? এখন সমস্ত রত্ন, এমনকি "উত্পাদনে" প্রয়োজন হয় না (কেবল প্রাক্পম্পাইলে), লোড হয় এবং এভাবে রেলগুলি আরও বেশি স্মৃতি গ্রহণ করে?
guki

4
+1 @ গৌকি এবং লোড সময়। এটি ছিল গ্রুপগুলি সম্পর্কে আমার বোঝাপড়া .. যেহেতু যেভাবেই লাইভ সংকলন অক্ষম করার জন্য ইতিমধ্যে একটি কনফিগার বিকল্প ছিল। এখানে "সমর্থন" পরিমাণ কী। আফাইক আমার রেলস 3 অ্যাপ্লিকেশনটির এনভ / প্রোড.আরবিতে একটি লাইন ছিল যা কেবলমাত্র উন্নয়নে সম্পদ লোড করে। যদি এটি সব হয় তবে আমরা কি এটি যাইহোক যুক্ত করতে পারি?
কার্তিক টি

সম্পদ গোষ্ঠী সরানো হয়েছে। আগে সম্পদের অভ্যন্তরের রত্নগুলি উত্পাদনে লোড হত, এখন আমাদের যদি উত্পাদনেও তাদের প্রয়োজন হয়। সুতরাং তাদের উত্পাদন লোড করা উচিত, সম্পদ গ্রুপ অপসারণ নিশ্চিত করে যে। উত্পাদনে স্থানান্তরিত হওয়ার আগে সম্পদগুলিকে প্রাক-কম্পাইল করতে হবে।
প্রশান্তসাহনী

13

রেলস 4 আপনাকে মোতায়েনের আগে আপনার সম্পদগুলিকে পূর্ববর্তীকরণে বাধ্য করার চেষ্টা করে। আপনার সাথে আপনার সম্পদ প্রাক্পম্পাইল করতে হবে

$ RAILS_ENV=production bundle exec rake assets:precompile

এবং কেন? আমি গাইড এ এটি পেয়েছি:

ডিফল্টরূপে রেলগুলি ধরে নেয় যে সম্পদগুলি পূর্বনির্ধারিত হয়েছে এবং আপনার ওয়েব সার্ভার দ্বারা স্থির সম্পদ হিসাবে পরিবেশন করা হবে।

(উত্স: http://edgeguides.rubyonrails.org/asset_piplines.html#in- Productions )

তবে অনেক সময় আপনাকে উত্পাদনের জন্য এই 'সম্পদ' রত্ন ব্যবহার করতে হয় ... উদাহরণস্বরূপ, আপনি যদি নিজের ভিউ ডিরেক্টরিতে একটি js.c کافی ফাইল ব্যবহার করেন, তবে রেলগুলিরও পাশাপাশি প্রডাকশন মোডে কফি সংকলক প্রয়োজন।

সুতরাং আমার ধারণা, এই পরিবর্তনের কারণটি হচ্ছে পারফরম্যান্স উন্নতি ... এবং আরও সহজ দেখাচ্ছে। :)


22
সম্পত্তিগুলি প্রাক-কম্পাইল করা হয়েছে বলে ধরে নেওয়া পলগুলি গোষ্ঠী বজায় রাখার পক্ষে যুক্তি assets, এ থেকে মুক্তি না পাওয়ার (যদি সম্পদ প্রাক-কম্পাইল করা হয় তবে এই রত্নগুলি উত্পাদনের প্রয়োজন হয় না এবং এটি বান্ডলার দ্বারা অন্তর্ভুক্ত করা উচিত নয়)। এবং হ্যাঁ, আপনি coffee-railsপ্রযোজনার মতো কোনও রত্ন ব্যবহার করতে পারেন ... তবে এটি 3 রেলের ক্ষেত্রেও ছিল, তাই না? এবং 3 করা পাগল coffee-railsমধ্যে assetsগ্রুপ, ডিফল্টরূপে। তাহলে কেন রেল 4 এর জন্য পরিবর্তন?
জেমনস

4
আপনি কেন নিজের দর্শন ডিরেক্টরিতে একটি js.c کافی ফাইল ব্যবহার করবেন? এটি সম্পদ / জাভাস্ক্রিপ্টগুলিতে যেতে হবে।
মার্নেন লাইবো-কোসার 21 '

3

আমরা এজেএক্স ( ইতিহাস ) এর সাথে কফিসক্রিপ্ট চাই , তাই coffee-railsসম্পদ গোষ্ঠীর বাইরে চলে।
sass-rails( ইতিহাস ) খারাপ ব্যবহার করে , তাই এটি সম্পদ গোষ্ঠীর বাইরে চলে যায়।

ধনসম্পদ গোষ্ঠীর অক্ষ।


4
কফিস্ক্রিপ্ট দৃষ্টিতে থাকা উচিত নয়। আপনি এটি ছাড়াই Ajax করতে পারেন। এজ্যাক্স করার জন্য আপনাকে গতিশীল জেএস তৈরি করতে হবে না। আসলে, আপনার গতিশীল জেএস তৈরি করা উচিত নয়। আপনার কফিস্ক্রিপ্ট ফাইলগুলি প্রাক-কম্পাইল করুন এবং বিষয়টি পুরোপুরি এড়িয়ে চলুন।
মার্নেন লাইবো-কোসার 21'27

4
Bundler.require :assetsচালিত হচ্ছে না বলে সাস-রেলগুলি খারাপ ব্যবহার করে । এটি সম্পদ গোষ্ঠীগুলি সরানোর যৌক্তিকতা নয়। আমি থেরুবাইরেসার চাই না, libv8 এবং সি। উত্পাদনে, কেন কেউ করেন? কফি টেম্পলেটটি একটি জেএস টেমপ্লেটে সংকলন করা যেতে পারে এবং প্রতিবার কোনও নতুন মান প্রতিস্থাপিত হলে এটি সংকলন করার কোনও বিন্দু নেই। উত্পাদনে এই সমস্ত বোঝা নেওয়ার কোনও অর্থ নেই।
ফিল পিরোজকভ
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.