2017-10-19 20 views
1

Je dispose d'un fichier de site_settings.scss qui contiennent toutes les variables pour mon application Rails:Effectuer des variables Sass dans tous les fichiers de feuille de style dans Rails

app/assets/stylesheets/site_settings.scss 

$primary_color: #4285F4; 
$dark_color: #333333; 
... 

En ce moment, si je veux utiliser à l'intérieur de ces variables un fichier que je dois faire ceci à l'intérieur de ce fichier:

import 'site_settings.scss' 

je dois mettre cela au début de chaque fichier que je veux utiliser ces variables, sinon Rails me donner le Undefined variable: erreur.

J'ai essayé de mettre import 'site_settings.scss' à l'intérieur du application.scss ou custom.scss, mais aucun d'entre eux travaille.

J'ai aussi essayé d'utiliser require 'site_settings' dans le aplication.scss et renommer application.scss à application.css.scss comme étant mentionné ici: http://mildlyinternet.com/code/scss-variables-asset-pipeline.html, mais il ne fonctionne toujours pas.

Voici mon application.scss:

/* 
*= require_self 
*= require font-awesome 
*/ 

@import "bootstrap-sprockets"; 
@import "bootstrap"; 
@import "custom"; 
@import "devise"; 
@import "site_settings"; 

Alors, comment puis-je résoudre ce problème, de sorte que je ne dois pas écrire import 'site_settings.scss' dans chaque fichier à chaque fois?

+0

Pouvez-vous poster le contenu de application.css? –

+1

@ PatrickO'Grady je l'ai ajouté sur le poste –

+0

Avez-vous essayé de le configurer exactement comme dans l'article lié? Où vous avez 'application.css', avec une instruction' * = require file_name', puis 'file_name.scss' avec toutes les importations? –

Répondre

1

Vous devez renommer tous les fichiers qui utiliseront les variables partagées pour commencer par _. Cela rendra les autres fichiers dans le contexte de fichiers partiels, qui utilisera les variables déclarées précédentes dans @import 'site_settings'. Donc, vous aurez site_settings.scss et quickrails/_general.scss, quickrails/_media_query.scss et ainsi de suite.

Ces importations sont considérées comme partielles, c'est pourquoi le nom doit commencer par un trait de soulignement, mais lors de l'importation, vous l'utilisez sans cela. Voici un matériau à ce sujet:

Why put in front of the file name "_" or "_" in scss/css?

+0

Ça ne marche toujours pas. Pouvez-vous jeter un coup d'oeil aux fichiers? Voici le lien: https://github.com/ryzalyusoff/Quickrails –

+0

Ah wow enfin ..... qui l'a réparé! Merci! –