আমি গাইড এর বিট লিখেছি।
আপনি অবশ্যই উত্পাদনে সংকলন বাঁচতে চান না।
আপনি যখন সংকলন করেছেন, তখন এটি ঘটে:
সম্পত্তিতে ফাইলের প্রতিটি অনুরোধ স্প্রোকেটকে দেওয়া হয়। উপর প্রথম প্রতিটি সম্পদের জন্য এটিকে সংকলিত করতে অনুরোধ এবং যাই হোক না কেন পাগল মধ্যে ক্যাশে ক্যাশে (সাধারণত ফাইল সিস্টেম থেকে) ব্যবহার হয়।
পরবর্তী অনুরোধে স্প্রোকেটগুলি অনুরোধটি গ্রহণ করে এবং ফিঙ্গারপ্রিন্টযুক্ত ফাইলের নামটি সন্ধান করতে হবে, সম্পদটি তৈরি করা ফাইল (চিত্র) বা ফাইলগুলি (সিএসএস এবং জেএস) সংশোধন করা হয়নি এবং তারপরে যদি কোনও ক্যাশেড সংস্করণ থাকে তবে তা পরিবেশন করবে।
যে সবকিছু সম্পদ ফোল্ডারে এবং কোন বিক্রেতা ইন / সম্পদ ফোল্ডার প্লাগিন দ্বারা ব্যবহৃত।
এটি প্রচুর ওভারহেড হিসাবে, সত্য বলতে, কোড গতির জন্য অনুকূলিত হয় না।
এর প্রভাব কীভাবে ক্লায়েন্টের কাছে তারের উপর দিয়ে যায় তার উপর প্রভাব ফেলবে এবং এটি আপনার সাইটের পৃষ্ঠা লোডের সময়ে নেতিবাচকভাবে প্রভাব ফেলবে।
ডিফল্ট সাথে তুলনা করুন:
সম্পদগুলি পূর্বনির্ধারিত হয় এবং সংকলন বন্ধ থাকে, সম্পদগুলি সংকলিত হয় এবং এর কাছে ফিঙ্গারপ্রিন্ট করা হয় public/assets
। স্প্রোকেটস প্লেসের একটি ম্যাপিং টেবিলটি রিয়েলগুলিতে ফিঙ্গারপ্রিন্টযুক্ত ফাইলের নামগুলিতে ফিরিয়ে দেয় এবং রেলগুলি এটি ফাইল সিস্টেমে লিখে দেয়। ম্যানিফেস্ট ফাইলটি (রেলগুলিতে ওয়াইএমএল 3 বা জেলগুলিতে জেলএসএসে জেলএসএস 4) প্রারম্ভকালে রেলস দ্বারা মেমরিতে লোড করা হয় এবং সম্পদ সহায়ক পদ্ধতি দ্বারা ব্যবহারের জন্য ক্যাশে করা হয়।
এটি সঠিকভাবে আঙুলের ছাপযুক্ত সম্পদের সাথে পৃষ্ঠাগুলির প্রজন্মকে খুব দ্রুতগতিতে পরিণত করে এবং ফাইলগুলি সেবার ওয়েব-সার্ভার-থেকে-ফাইল-সিস্টেমটি দ্রুততর হয়। উভয় নাটকীয়ভাবে লাইভ সংকলনের চেয়ে দ্রুত।
পাইপলাইন এবং ফিঙ্গারপ্রিন্টিংয়ের সর্বাধিক সুবিধা পেতে আপনাকে আপনার ওয়েব সার্ভারে সুদূর ভবিষ্যতের শিরোনাম স্থাপন করতে হবে এবং জেএস এবং সিএসএস ফাইলগুলির জন্য জিজিপ সংক্ষেপণ সক্ষম করতে হবে। স্প্রোকেটগুলি সম্পদের গিজিপযুক্ত সংস্করণ লিখেছে যা আপনি আপনার সার্ভারটি ব্যবহারের জন্য সেট করতে পারেন এবং প্রতিটি অনুরোধের জন্য এটি করার প্রয়োজনীয়তা সরিয়ে ফেলে।
এটি ক্লায়েন্টকে যত তাড়াতাড়ি সম্ভব সম্পদগুলি সরিয়ে দেয় এবং ছোট আকারে সম্ভব, পৃষ্ঠাগুলির ক্লায়েন্ট-পার্শ্ব প্রদর্শন দ্রুত করা এবং (ভবিষ্যতের শিরোনামের সাথে) অনুরোধগুলি হ্রাস করে।
সুতরাং আপনি যদি লাইভ সংকলন করেন তবে তা হ'ল:
- খুব ধীর
- সংকোচনের অভাব রয়েছে
- পৃষ্ঠাগুলির রেন্ডার সময়কে প্রভাবিত করবে
বনাম
- যত দ্রুত সম্ভব
- কম্প্রেস
- সার্ভার থেকে সংক্ষেপণ ওভারহেয়ার্ড সরান (allyচ্ছিকভাবে)
- পৃষ্ঠাগুলির রেন্ডার সময়কে হ্রাস করুন।
সম্পাদনা: (মন্তব্য অনুসরণ করার উত্তর)
প্রথম অনুরোধে পাইপলাইনটি পূর্বরূপে পরিবর্তন করা যেতে পারে তবে এটি করার জন্য কয়েকটি বড় বাঁধা আছে। প্রথমটি হ'ল ফিঙ্গারপ্রিন্ট করা নামগুলির জন্য একটি সন্ধানের টেবিল থাকতে হবে বা সহায়ক পদ্ধতিগুলি খুব ধীর। সংকলন-অন-ডিমান্ড সিনারিওর অধীনে প্রতিটি নতুন সম্পদ সংকলিত বা অনুরোধ করা হওয়ায় অনুসন্ধান টেবিলটিতে যুক্ত হওয়ার কিছু উপায় থাকতে হবে।
এছাড়াও, সমস্ত সম্পদ সংকলন এবং স্থানে না হওয়া পর্যন্ত কাউকে অজানা সময়ের জন্য ধীর সম্পদ সরবরাহের মূল্য দিতে হবে।
ডিফল্ট, যেখানে সমস্ত কিছু সংকলনের মূল্য এক সময় অফ-লাইন দেওয়া হয়, তা জনসাধারণের দর্শকদের উপর প্রভাব ফেলবে না এবং নিশ্চিত করে যে জিনিসগুলি লাইভ হওয়ার আগে সবকিছু কাজ করে।
চুক্তিভঙ্গকারী হ'ল এটি উত্পাদন ব্যবস্থায় অনেক জটিলতা যুক্ত করে।
[সম্পাদনা করুন, জুন ২০১৫] আপনি যদি এটি পড়তে থাকেন কারণ আপনি যখন কোনও মোতায়েনের সময় ধীর সংকলনের জন্য সমাধানের সন্ধান করছেন, তবে আপনি স্থানীয়ভাবে সম্পদগুলি পূর্ববর্তীকরণ বিবেচনা করতে পারেন। এ সম্পর্কিত তথ্য সম্পদ পাইপলাইন গাইডে রয়েছে । এটি আপনাকে স্থানীয়ভাবে কেবল প্রাক-কম্পাইল করতে দেয় যখন কোনও পরিবর্তন হয়, প্রতিশ্রুতি দেয় এবং তারপরে কোনও পূর্ব-পর্ব পর্যায়ক্রমে দ্রুত মোতায়েন করা হয়।