2011-10-30 2 views
1

저는 Asset Pipeline에 접속하고 있습니다. 저는 SASS/SCSS를 사용하고 있습니다.하지만 왜 자산 도우미를 사용해야하는지 이해하지 못하고 있습니다. 예를 들어Rails 3.1 자산 파이프 라인 - SCSS 파일에서 자산 도우미를 사용해야하는 이유는 무엇입니까?

, 나는 자산 도우미를 사용하지 않고 일부 CSS/SCSS있는 경우 : 내 .SCSS 파일과 이미지 모두 자산 디렉토리를 통해에 접근하기 때문에 이것은 잘 작동합니다

background-image: url('rails.png'); 

합니다.

이 일의 요점은

background-image: asset-url("rails.png", image); 

내가 그 URL에 "/ 자산 /"추가 할 것 이해하지만, 왜 표준 CSS 방식이 작동하는 경우 자산 도우미를 이용해야한다? :이야?

나는 뭔가를 놓치고 있다고 생각합니다. 프로덕션 환경에 배포하는 것과 관련이 있습니까?

답변

7

헬퍼를 사용하면 제작 된 손가락 인쇄 된 URL에 액세스 할 수 있습니다. Asset Pipeline guide :

프로덕션 환경에서 레일스는 위에 요약 된 지문 인식 체계를 사용합니다. 기본적으로 애셋은 사전 컴파일되어 웹 서버에 의해 정적 애셋으로 제공됩니다.

사전 컴파일 단계에서 MD5는 컴파일 된 파일의 내용에서 생성되고 디스크에 기록 될 때 파일 이름에 삽입됩니다. 이러한 지문 이름은 매니페스트 이름 대신 Rails 도우미가 사용합니다.

그래서 생산, 경로는 MD5가 추가 있고이 같은 일이 : 체크섬으로

/assets/pancakes-af27b6a414e6da00003503148be9b409.png 

을 장소에서, 레일은 영원히이 파일을 캐시 브라우저를 알 수 있습니다. 그런 다음 자산 중 하나를 변경하는 새 릴리스를 실행하면 체크섬이 변경되어 전체 경로가 변경됩니다. 새로운 경로는 브라우저가 완전히 새로운 파일이라고 생각하게하여 다시 가져올 것입니다. 체크섬이 없으면 브라우저 캐시에 낡은 파일이 생기고 쉽게 재미있는 시간을 가지지 않습니다.

+0

아 그래, 나는 그와 비슷한 것이되어야한다는 것을 알았다. 응답 해 주셔서 감사합니다. – user657823

관련 문제