2009-10-13 3 views
0

ActionController :: Base.asset_host를 설정하면 레일스에서 ​​에셋을 찾는 위치를 제어 할 수 있습니다. 그러나 기본적으로 레일스는 '/ public/...'을 찾아야합니다.Rails image_tag가 자산 용 프로덕션 서버를보고 있습니다!

내 Rails 앱은 개발 모드에서 내 프로덕션 주소를보고 어떤 식 으로든 ActionController :: Base.asset_host를 설정하지 않았습니다. 나는이 정보를 어디에서 발견하고 있는지 모르겠습니다. 이 설정이 가능한 다른 곳이 있습니까? 배포 레시피와 아무 관계가 없다고 생각합니다.

<%= image_tag 'my_logo.png' %> 

레일즈는 내 프로덕션 서버에서 파일을 검사합니다. 스타일 시트와 동일합니다.

+0

생산 주소로 신청서를 작성 했습니까? 어딘가에있을거야. – nfm

+0

예, app 및 config 디렉토리 주소가 있지만 거기에 내가이 글로벌 설정을 변경할 것이라고 생각할 것입니다 – Tony

+0

더 많은 정보를 게시 할 수 있습니까, 예를 들어, 로컬 대신 프로덕션 주소에서 자산을 인출하는 예제 메서드 호출? 앱이 개발 모드로 실행되고 있습니까? 테스트를 위해 webrick을 사용하고 있습니까? – nfm

답변

0

Rails가 내 제작 도메인을 찾는 방법을 잘 모르겠습니다. 나는 그것을 코드에서 거의 모든 곳에서 제거했다. docs에 따르면 "기본적으로 레일스는 공용 폴더의 현재 호스트에서 이러한 자산에 연결됩니다."그러나 나는 그것이 무엇을 의미하는지 확실히 모르겠습니다. 이것이 다시 문제가되지 않도록하고 유연한 구성을 허용하기 위해 자산 호스트 도메인을 환경 구성에 추가했습니다. 나는 지금 다음과 같은 것을 가지고있다.

EnvironmentConfig = YAML.load(File.read(Rails.root + "config/#{rails_env}" + 'environment.yml'))[rails_env] 

ActionController::Base.asset_host = EnvironmentConfig['asset_host'] 

모든 것이 잘 작동한다. Rails가 내 프로덕션 도메인을 어떻게 보았는지 알지 못합니다.

관련 문제