134 votes

Avoir une variable dans les images de chemin d'accès dans le Sass?

Je veux avoir une variable qui contient le chemin d'accès racine de toutes mes images dans mon fichier CSS. Je n'arrive pas à comprendre si c'est possible dans le plus pur Sass (le projet web n'est pas RoR, ne peut donc pas utiliser asset_pipeline ou de fantaisie jazz).

Voici mon exemple qui ne fonctionne pas. Sur le compiler les billes en première instance de la variable dans le contexte de l'url de la propriété en disant ("Invalid CSS after "..site/background": expected ")").

La définition de la fonction pour retourner le chemin:

//Vars
$assetPath : "/assets/images";

//Functions
@function get-path-to-assets($assetPath){
  @return $assetPath;
}

À l'aide de la fonction:

body {
  margin: 0 auto;
  background: url($get-path-to-assets/site/background.jpg) repeat-x fixed 0 0;
  width: 100%; }

Toute aide serait appréciée.

223voto

Wesley Murch Points 48959

Avez-vous essayé l' Interpolation de la syntaxe?

background: url(#{$get-path-to-assets}/site/background.jpg) repeat-x fixed 0 0;

100voto

steveax Points 6997

Pas besoin d'une fonction:

$assetPath : "/assets/images";

...

body {
  margin: 0 auto;
  background: url(#{$assetPath}/site/background.jpg) repeat-x fixed 0 0;
  width: 100%; }

Voir l' interpolation docs pour plus de détails.

6voto

NerdCowboy Points 61

Était à la recherche autour pour une réponse à la même question, mais je pense que je trouve une meilleure solution: http://blog.grayghostvisuals.com/compass/image-url/

Fondamentalement, vous pouvez configurer votre chemin de l'image dans le fichier config.rb et vous utiliser l'image: url() helper

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X