2012-08-01 6 views
2

J'ai un fichier global.less dans mon dossier assets où j'ai défini de nombreuses variables pour l'ensemble du site.Importation de variables LESS dans Rails 3

Pour utiliser ces variables dans d'autres moins de fichiers, je mets actuellement ce en haut de chaque fichier:

@import 'global'; 

Cette charge tout va bien, mais maintenant j'ai une copie globale chargée dans chaque moins fichier. Je me demande s'il existe un moyen d'écrire l'importation juste une fois dans le projet, et si les autres moins de fichiers peuvent y accéder?

Répondre

3

Il y a juste deux petites choses que vous devez faire pour que cela se produise.

  1. Faire application.css un fichier .Moins en le renommant application.less ou application.css.less.

  2. Supprimez la directive require_tree . sprocket, qui importerait les fichiers dans le répertoire des feuilles de style, supprimant ainsi votre capacité à définir l'ordre.

Une fois que ces choses sont faites, il devrait fonctionner comme prévu, tout simplement:

// in global.less 
@foo: #FFFFFF; 

// in foo.less 
.foo { 
    background-color: @foo; 
} 

// and finally in application.less 
@import 'global'; 
@import 'foo'; 
+0

+1 homme bon! Merci d'avoir répondu! – andy

+0

Mais je vois un problème dans cette pratique. Plusieurs fois, nous devons utiliser 'require tree'. et 'require_self'. Dans cet exemple, ces méthodes ne seront pas disponibles car vous avez utilisé un fichier .sass au lieu d'un .css. Ensuite, il est nécessaire de créer un @import dans chaque feuille de style d'action. –

+0

Non. Le point ici est que cette méthode abandonne 'require_tree' en faveur de la propre fonctionnalité' @ import' de less, ce qui crée un espace de noms global qui garde les mixins et les variables disponibles, contrairement à 'require' des pignons. Notez que cette question est pour moins, et * not * sass que vous mentionnez, mais le même principe s'applique aux deux. Voir [cette note] (https://github.com/rails/sass-rails#important-note) concernant le problème sur le github de sass. – numbers1311407

Questions connexes