2014-04-01 3 views
1

내 레일 앱에서 logo.png 파일에 액세스하려고합니다. 배포 프로세스 중에/app/assets의 모든 내용이 컴파일되어/public/assets에 배치됩니다. 예를 들어 logo.png 이름이되었다 내 파일은 다음과 같습니다 :Rails 자산 파이프 라인과 nginx의 정적 파일 제공

/public/assets/logo-e66eddecdb08ac2b7fe349da2a065d87.png 

내가 그 전체 파일 이름 nginx를 성공적으로하기 때문에 내/등/사이트 사용이/myapp와 이러한 라인 바로 그것을 제공에 액세스하려고 :

try_files $uri/index.html $uri @unicorn; 
root /home/deployer/apps/myapp/current/public 

그래서 나는 myserverhost.com/assets/logo-e66eddecdb08ac2b7fe349da2a065d87.png을 검색 할 수 있고 그것을 잘로드합니다. 그러나 물론 내 애플 리케이션에서 나는 단순히 "logo.png"로 참조 된 파일을 가지고 있으며, 홈 페이지를로드 할 때 logo.png에 404 파일이 없습니다.

nginx는 파일 이름이 끝에 해시로 매시업되었다는 것을 어떻게 알 수 있습니까?

편집 : 내하는 SCS 파일에서이 같은 로고 파일을 참조 :

#sidebar .logo-div { 
    border-bottom: 2px solid#ddd; 
    width:100%; 
    height:80px; 
    text-align:center; 
    background-image:url('logo.png'); 
    background-position:center; 
    background-repeat:no-repeat; 
    margin-bottom:20px; 
} 
+0

어떻게 당신이보기에'logo.png'을 참조하는 : 파일이 sass 파일이 도우미를 사용할 수있다

background-image: url(/assets/logo.png); 

경우? – ediblecode

+0

해당 정보로 내 질문을 편집했습니다 – asolberg

답변

2

당신은 URL 도우미를 사용해야합니다. asset-url("logo.png", image)

레일

background-image: url(image-path("logo.png"));

또는 자동 생산에서의 해시를 추가한다.

+0

지금 작동합니까? – crispychicken

+0

예, 완벽하게 작동했습니다. – asolberg

0

파일이 css 파일 인 경우 :

background-image: image-url("logo.png");