2014-09-03 6 views
2

방금 ​​레일스 3.0을 Rails 3.1로 업그레이드했습니다.SCSS 파일의 Rails 3.1 자산 URL이 자산을 올바르게 참조하지 않는 것 같습니다.

.foo { 
    background-image: image-url('foo.png'); 
} 

문제는 내 foo.png 파일이로드되지 않고 내 로그에 404 오류를 볼 수 있다는 것입니다 :

나는 다음과 같이 이미지 ( /app/assets/images/foo.png)을 참조하는 foo.css.scss 파일이 있습니다. 생성 된 실제 CSS 항목은 다음과 같습니다 (?) 이미지가 /images/foo.png에서 /assets/foo.png에서 발견되지 않을 수 있기 때문에 잘못

background-image: url(/images/foo.png); 

.

아직 development 모드로 작업 중입니다.

또 다른 중요한 메모. 내가 foo.css.erb 및 사용에 내 foo.css.scss 파일의 이름을 변경하는 경우 :

background-image: url(<%= image_path('foo.png') %>); 

을가 /assets/foo.png를 생성하기 때문에 그것은 확인을 작동합니다.

scss 프리 컴파일러가 올바른 css을 생성하지 않는 이유는 무엇입니까?

업데이트 : 내 foo.css.scss 파일이있는 :

app/assets/stylesheets/sub_dir/foo.css.scss 

합니까 어떤 차이를 만들인가?

+0

뭔가 잘못 사라,하지만 간단한 수정 내가 '사용에 따라 자산의 URL ('foo.png ', 이미지)'자산 URL로 – Yule

+0

@Yule을 이미지 URL을 변경하는 것입니다 귀하의 제안,하지만 같은 오류가 있습니다. 생성 된 URL은'/ images/foo.png'입니다. –

+0

사용중인 sass-rails의 버전은 무엇입니까? 당신은'config.assets.enabled = true'를 가지고 있습니까 'config.assets.version = '1.0'' application.rb에 – Yule

답변

0

을 시도합니다.

.foo { 
    background-image: url('foo.png') 
} 

자동으로 SCSS 컴파일러에 의해 url('/assets/foo.png')로 변환하는 : 가장 우아한 한 다음이었다. 더 중요한

2

당신은 시도 할 수 있습니다 :

.foo { 
    background: url("/assets/foo.png") 
} 

가 잘 작동합니다. 희망은 도움이 :)

+0

흠. 이것은 실제로 작동합니다. 생산으로 이전 할 때 작동합니까? 또한 sass-rails의 문서에 따르면 image-url 메서드는 자동으로이를 수행해야합니다.그리고 질문은 image-url 메서드가 예상대로 작동하지 않는 이유입니다. 내 대답에'image-url'이 작동하지 않는다고 썼다. –

+0

네, 물론입니다. 컴파일되고 동일한 이미지에 대해 지문 파일이 생성됩니다. 당신은 'public'디렉토리 안에 그것을 찾을 수 있습니다 –

+0

당분간 당신의 대답을 유용하게 유지할 것입니다,하지만 제 질문에 말했듯이 작동하지 않기 때문에'image-url' 버전을 제거해야합니다. 하지만, 왜 'image-url'이'/ assets /'접두어로'url'을 사용하기 전에 작동하지 않는지 이해해야합니다. –

0

나는 다양한 솔루션을 시도

.classname{ 
    background: url(asset_path('/assets/image.png')) 
} 
+0

답을 수정해야합니다. 'url (asset_path ('/ assets/foo.ng ', image));' –

0
.foo { 
    background-image: asset-url('sub_dir/foo.png', asset); 
}