2011-09-23 2 views
0

나는 비행 중에 'public/scene/ticket_123/*. png'에 일부 이미지를 생성하는 Rails 3.1 응용 프로그램을 보았습니다. 이는 개발 모드에서 정상적으로 작동하지만, 프로덕션에서 모든 자산을 사전 컴파일해야합니다. 따라서 응용 프로그램을 시작한 후에 생성 한 파일을 사용할 수 없습니다. config.assets.compile = true로 설정해도 문제가 해결되지 않습니다. 티켓 번호가 바뀌기 때문에 상황은 더욱 악화됩니다. 따라서 이미지는 서로 다른 디렉토리에 있습니다. 애셋을 설정하여 애플리케이션을 시작한 후에 생성 된 이미지를 표시하려면 어떻게해야합니까?Rails 3.1에서 에셋을 설정하여 비행 중에 생성 된 이미지를 표시하려면 어떻게해야합니까?

답변

0

같은 문제가있었습니다. 모든 이미지를 "public/images"으로 복사하여 모든 링크를 새 경로로 변경하여 해결 방법을 찾았습니다.

그 순간 나를 위해 일했습니다. 누군가가 더 좋은 아이디어를 내놓을 때까지 기다린다.

도움이 되었기를 바랍니다.

0

발견 된 해결책.

# In view I wrote 
<img src=<%= mycontroller_image_get_path :filename=>file_name %> > 
# In controller I created GET action 
def image_get 
    send_file params[:filename], :disposition => 'inline', :type => 'image/png' 
end 

그러나 당신은 당신이 보내려고하고 해당 파일을 걱정해야한다, 그렇지 않으면 send_file "# {Rails.root} 공개 /"디렉토리에이 파일을 찾을 수 없다고. (/ public에서는 필요하지 않지만 Rails.root에서는 어쨌든). 이 동작을 변경하려면이 항목을 읽는 것이 유용 할 수 있습니다. Can I use send_file to send a file on a drive other than the Rails.root drive?

관련 문제