নির্বাচিত উত্তর একটি কার্যকর সমাধান সরবরাহ করে না।
ওপির অনুশীলন অনিয়মিত বলে মনে হচ্ছে। একটি ভাগ / সাধারণ ফাইল সাধারণত partialsএকটি স্ট্যান্ডার্ড বয়লারপ্লেট ডিরেক্টরি অধীনে বাস করে । তারপরে partialsআপনার কোডের যে কোনও জায়গায় পার্টিয়ালগুলি সমাধান করার জন্য আপনার কনফিগার আমদানির পথে ডিরেক্টরি যুক্ত করা উচিত ।
আমি যখন প্রথমবার এই সমস্যাটির মুখোমুখি হয়েছিলাম তখন আমি বুঝতে পেরেছি SASS সম্ভবত আপনাকে নোডের অনুরূপ একটি বৈশ্বিক পরিবর্তনশীল দেয় __dirnameযা বর্তমান কার্যনির্বাহী ডিরেক্টরিতে ( cwd) নিরঙ্কুশ পথ রাখে । দুর্ভাগ্যক্রমে, এটি হয় না এবং কারণ হ'ল @importনির্দেশের ক্ষেত্রে অন্তরঙ্গকরণ সম্ভব নয়, সুতরাং আপনি গতিশীল আমদানি পথটি করতে পারবেন না।
SASS ডক্স অনুসারে ।
:load_pathsআপনার Sass কনফিগারেশনে আপনাকে সেট করতে হবে । যেহেতু ওপি কম্পাস ব্যবহার করে, আমি এখানে ডকুমেন্টেশন অনুসারে এটি অনুসরণ করব ।
আপনি সিএলআই সমাধানটি উদ্দেশ্য হিসাবে যেতে পারেন, তবে কেন? এটি যুক্ত করা অনেক বেশি সুবিধাজনক config.rb। ওভাররাইডের জন্য সিএলআই ব্যবহার করা বোধগম্য হবে config.rb(উদাঃ, বিভিন্ন বিল্ডের দৃশ্যপট)
সুতরাং, আপনার config.rbপ্রকল্পের মূলের আওতায় ধরে নিচ্ছেন, কেবল নিম্নলিখিত লাইনটি যুক্ত করুন:
add_import_path 'sub_directory_a'
এবং এখন @import 'common';ঠিক যে কোনও জায়গায় কাজ করবে।
যদিও এটি ওপিকে উত্তর দেয়, আরও রয়েছে।
পরিশিষ্ট
আপনি এমবেডেড পদ্ধতিতে কোনও সিএসএস ফাইল আমদানি করতে চান এমন ক্ষেত্রে আপনি সম্ভবত দৌড়াতে পারেন, এটি ভ্যানিলা @importনির্দেশিকা সিএসএসের মাধ্যমে নয় , তবে আপনার এসএএসএসের সাথে সিএসএস ফাইলের সামগ্রীতে প্রকৃত সংযুক্তি রয়েছে। এখানে আরও একটি প্রশ্ন রয়েছে , যার উত্তর অবিচ্ছিন্নভাবে দেওয়া হয়েছে (সমাধানটি আন্তঃ-পরিবেশে কাজ করে না)। তারপরে সমাধানটি হ'ল এই SASS এক্সটেনশনটি ব্যবহার করা ।
একবার ইনস্টল হয়ে গেলে আপনার কনফিগারেশনে নিম্নলিখিত লাইনটি যুক্ত করুন: require 'sass-css-importer'এবং তারপরে আপনার কোডের কোথাও:@import 'CSS:myCssFile';
এই কাজ করার জন্য এক্সটেনশনটি বাদ দিতে হবে তা লক্ষ্য করুন।
যাইহোক, অ-ডিফল্ট পাথ থেকে সিএসএস ফাইল আমদানির চেষ্টা করার সময় আমরা একই সমস্যাটিতে চলে যাব এবং add_import_pathসিএসএস ফাইলগুলিকে সম্মান করি না। সুতরাং এটি সমাধান করার জন্য, আপনাকে নিজের কনফিগারেশনে আরও একটি লাইন যুক্ত করতে হবে যা প্রাকৃতিকভাবে অনুরূপ:
add_import_path Sass::CssImporter::Importer.new('sub_directory_a')
এখন সবকিছু সুন্দরভাবে কাজ করবে।
পিএস, আমি লক্ষ্য করেছি sass-css-importerডকুমেন্টেশনগুলি নির্দেশ করে CSS:যে .cssএক্সটেনশান বাদ দেওয়ার পাশাপাশি একটি উপসর্গও প্রয়োজন । আমি নির্বিশেষে এটি কাজ করে খুঁজে পেয়েছি। কেউ একটি সমস্যা শুরু করেছিলেন , যা এখনও অবধি উত্তরহীন রয়ে গেছে।
-I? যদি সেই পথের নাম পরিবর্তন হয় তবে প্রচুর অনুসন্ধান এবং প্রতিস্থাপন হবে; এবং এর জন্য .scss ভাগ করে নেওয়া প্রত্যেকের একই স্থানীয় ফোল্ডার কাঠামোটি দরকার