سؤال

مرحبًا، أنا جديد على Rails وRuby بشكل عام.كنت أتساءل عما إذا كان من الممكن استخدام ملف Ruby CSS المضمن (css.erb)، على غرار استخدام ملفات html.erb للمشاهدات.

على سبيل المثال، أنا أستخدم

<%= stylesheet_link_tag "main" %>

للارتباط بملف main.css الخاص بي في أوراق الأنماط العامة/العامة، ولكن عندما أقوم بتغيير امتداد الملف من main.css إلى main.css.erb، فإنه لم يعد يعرض ملف css..

هل هذا ممكن، أم أن هناك طريقة أفضل؟

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

المحلول

أنا لا أعتقد ذلك.ما هي نيتك - استخدام المتغيرات وتقييمها في وقت التشغيل، أو وقت "الترجمة" (أي مثل وقت النشر؟).أيضًا، ما هو رابط ERB؟هل سيتم ربطه بوحدة التحكم، مثل طرق العرض والمساعدين، بحيث يتمكن مثيل ERB من الوصول إلى متغيرات المثيل المحددة في وحدة التحكم؟أنا فقط أطرح هذا السؤال باعتباره مجرد تمرين نظري.

إذا كنت تريد استخدام المتغيرات في CSS الخاص بك، فيمكنك استخدام Haml's SASS.لا يمكنك الوصول إلى نطاق وحدة التحكم ولكنك تحصل على المتغيرات الأساسية والحلقات.بالإضافة إلى أشياء رائعة أخرى مثل mixins.

نصائح أخرى

بحلول الوقت الذي تمت الإجابة فيه على هذا السؤال، لم يكن هناك بالفعل طريقة للاستخدام .css.erb الملفات في القضبان بشكل صحيح.

لكن مسار أصول Rails 3.1 الجديد يمكّنك من استخدام مساعدي الأصول داخل ملف CSS الخاص بك.لا يرتبط محللو CSS بنطاق تحكم/إجراء، لكن محلل روبي الآن قادر على حل بعض المشكلات مثل مراجع مسار الصورة

.class { background-image: url(<%= asset_path 'image.png' %>) }

أو قم بتضمين صورة مباشرة في ملف CSS الخاص بك

#logo { background: url(<%= asset_data_uri 'logo.png' %>) }

مصدر: http://guides.rubyonrails.org/asset_pipeline.html

يمكنك أيضًا إنشاء وحدة تحكم "أوراق الأنماط".

./script/generate controller stylesheets main admin maintenance

تحصل على شيء مثل هذا:

      exists  app/controllers/
      exists  app/helpers/
      create  app/views/stylesheets
      exists  test/functional/
      exists  test/unit/helpers/
      create  app/controllers/stylesheets_controller.rb
      create  test/functional/stylesheets_controller_test.rb
      create  app/helpers/stylesheets_helper.rb
      create  test/unit/helpers/stylesheets_helper_test.rb
      create  app/views/stylesheets/main.html.erb
      create  app/views/stylesheets/admin.html.erb
      create  app/views/stylesheets/maintenance.html.erb

ويمكنك لاحقًا استخدام ملفات التطبيق/طرق العرض/أوراق الأنماط/كملفات CSS يتم عرضها ديناميكيًا.

تعمل نفس الطريقة مع ملفات جافا سكريبت (وحدة تحكم جافا سكريبت)

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