2012-01-20 2 views
2

iPhone 4+ Retina Display와 같은 고밀도 디스플레이 용 @mixin을 작성하려고합니다. 따라서 이미지 파일 이름에 접미사로 "@2x"을 자동으로 추가하려고합니다.SASS 파일의 http_images_path 상수에 액세스하십시오.

image-url()은 전체 경로를 반환하므로 접미사를 추가 할 수 없습니다. 구성에서 설정 한 이미지 경로에 액세스하려고하지 않아 URL을 함께 패치 할 수 없습니다.

처럼 :

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

그러나 #이 {$ http_images_path} 정의되지 않습니다. 액세스 할 수있는 방법이 있습니까? 필자는 이미지 경로를 seperatly로 정의하고 싶지는 않습니다. 설정이 매우 불필요 할 것이기 때문입니다.

"."앞에 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

관련 문제