ما هي أفضل طريقة لتخزين CSS الذي تم إنشاؤه بواسطة SASS في تطبيقك والتحكم في المصدر؟

StackOverflow https://stackoverflow.com/questions/86018

  •  01-07-2019
  •  | 
  •  

سؤال

إذا كنت تستخدم HAML وSASS في تطبيق Rails الخاص بك، فسيتم تجميع أي قوالب تحددها في public/stylesheet/*.sass في أوراق أنماط *.css.من التعليمات البرمجية الخاصة بك، يمكنك استخدام stylesheet_link_tag لسحب الأصل بالاسم دون الحاجة إلى القلق بشأن الامتداد.

لا يحب العديد من الأشخاص تخزين التعليمات البرمجية التي تم إنشاؤها أو التعليمات البرمجية المترجمة في التحكم في الإصدار، ومن المنطقي أيضًا أن الدليل public/ لا يجب أن يحتوي على عناصر لا ترسلها إلى المتصفح.

ما هو أفضل نمط يجب اتباعه عند تخطيط موارد SASS في مشروع Rails الخاص بك؟

هل كانت مفيدة؟

المحلول

أقوم دائمًا بإصدار جميع أوراق الأنماط في "public/stylesheets/sass/*.sass" وقم بإعداد مرشح استبعاد للأوراق المجمعة:

/public/stylesheets/*.css

نصائح أخرى

ال بوصلة يوصي إطار العمل بوضع أوراق أنماط sass الخاصة بك ضمن التطبيق/أوراق الأنماط ووضع ملف css المترجم في ملف public/stylesheets/compiled.

يمكنك تكوين هذا عن طريق إضافة التعليمات البرمجية التالية إلى Environment.rb الخاص بك:

Sass::Plugin.options[:template_location] = {
  "#{RAILS_ROOT}/app/stylesheets" => "#{RAILS_ROOT}/public/stylesheets/compiled"
}

إذا كنت تستخدم إطار عمل البوصلة، فإنه يقوم بإعداد هذا التكوين لك عند تثبيته.

بصراحة، أحب وجود أوراق أنماط SASS المجمعة في التحكم في الإصدار.إنها صغيرة الحجم، ولا تتغير إلا عندما تتغير ملفات .sass الخاصة بك، كما أن نشرها مع بقية تطبيقك يعني أن مترجم SASS لن يحتاج أبدًا إلى إطلاقه في الإنتاج.

الميزة الأخرى (وإن كانت صغيرة) هي أنه إذا كنت لا تستخدم التخزين المؤقت للصفحة، فلن تحتاج عملية Rails الخاصة بك إلى الوصول للكتابة إلى public_html الدليل.لذلك هناك طريقة واحدة أقل يمكن أن يكون بها استغلال خادمك شريرًا.

ذو صلة إلى حد ما، ولكن من الجيد إعادة إنشاء CSS الخاص بك أثناء عمليات نشر capistrano.خطاف رد الاتصال هذا يفعل ذلك تمامًا:

after "deploy:update_code" do
  rails_env = fetch(:rails_env, "production")
  run "#{release_path}/script/runner -e #{rails_env} 'Sass::Plugin.update_stylesheets'"
end

تحديث:لم يعد هذا ضروريًا مع الإصدارات الحديثة من Haml/Sass.

إذا تمكنت من إدارتها، فأنا أرغب في تخزين جميع أنماطي في قوالب SASS عندما أختار HAML/SASS لمشروع ما، وسأقوم بإزالة application.css وscaffold.css.ثم سأضع SASS في public/stylesheets/sass، وأضف /public/stylesheets/*.css إلى .gitignore.

إذا كان علي العمل مع مجموعة من الأصول المستندة إلى SASS وCSS، فسيكون الأمر أكثر تعقيدًا بعض الشيء.إن أبسط طريقة للتعامل مع ذلك هي أن يكون لديك دليل فرعي للإخراج لـ CSS المُنشأ داخل دليل أوراق الأنماط، ثم استبعاد هذا الدليل الفرعي في .gitignore.بعد ذلك، في طرق عرضك، عليك أن تعرف نوع التصميم الذي تستخدمه (SASS أو CSS) بحكم الاضطرار إلى تحديد ورقة الأنماط public/stylesheets/foo أو ورقة الأنماط public/stylesheets/sass-out/foo.

إذا كان عليك أن تسلك المسار الثاني، فقم ببناء مساعد لتجريد الدليل الفرعي sass-out.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top