2012-01-20 7 views
2

iPhone 4+ Retina Displayのような高密度ディスプレイ用の@mixinを作成しようとしています。したがって、画像ファイル名に接尾辞として"@2x"を自動的に付加したいと思います。SASSファイルのhttp_images_path定数にアクセス

image-url()はパス全体をスローバックするので、接尾辞を追加できません。設定したImage-Pathにアクセスしようとしていません。自分でURLを一緒に修正する必要があります。

同様:

background: $color url("#{$http_images_path}"+"#{$image-name}"+"@2x"+"#{$image-extension}") $x $y no-repeat 

しかし、#{$ http_images_path}が定義されていません。それにアクセスする方法はありますか?私は実際にイメージパスを別々に定義したいのではありません。なぜなら、それは設定を非常に不必要にするからです。

"。"の前にimage-url()の返り値を分割することもできます。拡張子を別々に定義する必要はないので、 "@ 2x"を追加してください。私はputs "test"のようなsassファイルでRubyを使用しようとしましたが、動作しませんでした。だから、私は胸を裂く方法があるのか​​どうか分からない。

皆さんに良いアイデアがありますか?

ありがとうございます! アレックス

あなたのイメージ名を連結でき

答えて

0

image_url()

config.rb

images_dir = "images" 
http_images_path = "/your/path" 

screen.sass

$image-name: "asset" 
$image-extension: ".png" 

.class 
    background-image: image_url($image-name + "@2x" + $image-extension) 

screen.css内部

/* line 4, ../sass/screen.sass */ 
.class { 
    background-image: url('/your/path/[email protected]?1327210853'); 
} 

ファイル名を分割して@2xを挿入するルートに移動するには、rubyで拡張子を作成する必要があります。 my Compass extensionを出発点として使用できます。

+0

これは私の現在の回避策にかなり近いです。ありがとうございました。そして、ファイル名を分割する唯一の方法が拡張であることを承認してくれてありがとう。なぜなら、おそらく、.sassファイルでRubyを直接使用する方法があるかどうかはわかりませんでした。 – awenro

関連する問題