Frage

Hallo, ich bin neu in Rails und Ruby im Allgemeinen. Ich habe mich gefragt, ob es möglich ist eine eingebettete Ruby-CSS-Datei (css.erb), ähnlich wie mit html.erb Dateien für Ansichten zu verwenden.

Zum Beispiel verwende ich

<%= stylesheet_link_tag "main" %>

In dem Link zu meiner main.css Datei in der Öffentlichkeit / Stylesheets, aber wenn ich die Erweiterungsdatei ändern von main.css zu main.css.erb, es nicht mehr macht die CSS ..

Ist dies überhaupt möglich, oder gibt es einen besseren Weg?

War es hilfreich?

Lösung

nicht, den ich glaube. Was ist Ihre Absicht - Variablen zu verwenden und sie zur Laufzeit oder „Übersetzen“ ausgewertet werden (was bedeutet, wie deploy Zeit?). Auch, was wäre die ERB-Bindung? Wäre es bindet an die Steuerung, wie Ansichten und Helfer sind, so dass ERB Instanz Zugriff auf die Instanzvariablen in der Steuerung haben würde? Ich stelle gerade diese Frage eher als theoretische Übung.

Wenn Sie Variablen in Ihrem CSS verwenden möchten, als Sie Haml die SASS verwenden können. Sie brauchen nicht den Zugang zu dem Anwendungsbereich des Controller erhalten, aber Sie Basisvariablen und Looping tun bekommen. Plus andere coole Sachen wie Mixins.

Andere Tipps

Durch die Zeit, diese Frage beantwortet wurde, gibt es in der Tat keine Möglichkeit Gebrauch .css.erb Dateien in Schienen richtig.

Aber die neuen Schienen 3.1 Asset-Pipeline ermöglicht Asset Helfer in Ihrer CSS-Datei zu verwenden. Der CSS-Parser ist kein Controller / Aktion Umfang binded, aber der Rubin-Parser ist nun in der Lage, einige Probleme wie Bildpfad Referenzen

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

oder einbetten ein Bild direkt in Ihr CSS

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

Quelle: http://guides.rubyonrails.org/asset_pipeline.html

Sie können auch ein "Stylesheets" Controller

erzeugen
./script/generate controller stylesheets main admin maintenance

Sie erhalten etwas wie folgt aus:

      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

Und Sie können später verwenden, um die app / views / Sheets / Dateien als CSS-Dateien dynamisch generiert.

Die gleiche Methode funktioniert für JavaScript-Dateien (Javascripts Controller)

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top