Possibilité d'utiliser stylesheet.css.erb dans Rails?

voix
5

Hey, je suis nouveau Rails et Ruby en général. Je me demandais s'il est possible d'utiliser un fichier css Ruby embarqué (css.erb), similaire à l'utilisation html.erb fichiers pour les vues.

Par exemple, j'utilise

<%= stylesheet_link_tag main %>

pour créer un lien vers mon fichier main.css dans / stylesheets publics, mais quand je change l'extension de fichier de main.css à main.css.erb, il ne rend plus le .. css

Est-ce même possible, ou est-il une meilleure façon?

Créé 27/08/2009 à 00:48
source utilisateur
Dans d'autres langues...                            


3 réponses

voix
3

Je ne pense pas ainsi. Quel est votre intention - d'utiliser des variables et de les évaluer lors de l'exécution, ou le temps « compilation » (ce qui signifie que le temps de déploiement?). En outre, quelle serait la ERB contraignante? Ne serait-il se lier au contrôleur, comme des vues et des aides sont, de sorte que par exemple ERB aurait accès aux variables d'instance définies dans le contrôleur? Je pose simplement cette question plus d'un exercice théorique.

Si vous voulez utiliser des variables dans votre CSS que vous pouvez utiliser Sass Haml. Vous ne recevez pas l'accès à la portée du contrôleur, mais vous obtenez des variables de base et mise en boucle. De plus d'autres trucs cool comme mixins.

Créé 27/08/2009 à 00:59
source utilisateur

voix
4

Vous pouvez également générer un contrôleur « stylesheets` »

./script/generate controller stylesheets main admin maintenance

Vous obtenez quelque chose comme ceci:

      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

Et vous pouvez ensuite utiliser les app / vues / feuilles de style / fichiers sous forme de fichiers dynamiquement rendus css.

La même méthode fonctionne pour les fichiers javascript (contrôleur javascripts)

Créé 27/08/2009 à 20:57
source utilisateur

voix
22

Au moment où cette question a été répondu qu'il y avait en effet aucun moyen d'utiliser des .css.erbfichiers dans des rails correctement.

Mais les nouveaux rails 3.1 pipeline d'actifs vous permet d'utiliser les aides d'actifs dans votre fichier css. Les parseurs ne sont pas css binded un champ contrôleur / action, mais l'analyseur rubis est maintenant en mesure de résoudre certains problèmes comme références de chemin d'image

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

ou intégrer une image directement dans votre css

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

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

Créé 09/04/2012 à 16:12
source utilisateur

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more