2014-01-26 4 views
3

우리는 Epub.js를 기본로드 /보기 기능으로 사용하는 전자 판독기 응용 프로그램을 빌드하려고합니다. 그러나 Rails 4.0을 사용하여이 애플리케이션을 개발하려고 시도하고 있으며 Epub.js를 애플리케이션에 통합하려고 할 때 몇 가지 문제가 발생합니다.Ruby on Rails와 Epub.js의 통합

Github 페이지의 Getting Started 섹션을 따라했습니다. ePub로드를 처리 할 Book 클래스가 있습니다. epub.min.js, zip.min.js 및 inflate.js 파일을 모두 app/assets/javascripts 폴더에 넣습니다. 그런 다음 필요한 자바 스크립트를 추가합니다.

<script> 
var Book = ePub("url/to/book/"); 
Book.renderTo("area"); 
</script> 

다음은 주요 문제가있는 곳입니다. ePub()이 취하는 인수는 URL로 변환됩니다. 로컬 파일 인 경우 URL은 http://localhost:3000/books/testbook.epub입니다. 그러나 Rail의 자산 파이프 라인 때문에 자산에 대한 직접적인 URL 링크를 가질 수는 없습니다. 즉, URL로 로컬 epub 파일을 참조하는 방법을 찾지 못했습니다.

Epub.js가 단지 epub 파일을 보지 않고 있기 때문에 url을 자산에 직접 연결하는 routes.rb에 경로를 지정해도 더 이상 복잡하지 않습니다. 그것은 또한 그것을 포장 해제 (unpackages)하고 url을 사용하여 로컬 내용을 봅니다. 또한 Project Gutenberg의 .epub 파일과 같은 외부 URL도 작동하지 않습니다.

이 문제가 발생합니까? 나는 Rails를 처음 사용하기 때문에 내가 간과하고있는 주요 영역이 있는지 궁금하다. Epub.js를 수정해야 할 부분이 있습니까? 나는 Google과 StackOverflow를 해답을 찾았지만, Rails와 Epub.js를 통합하는 프로젝트는별로 없을 것 같습니다. Readium.js와 같은 다른 솔루션도 시도해 보았습니다. 또한 작동하지 않는 것 같습니다.

도움을 주셔서 감사합니다.

+0

도움이되기를 바랍니다 rails_root/공공에 드롭하고 응용 프로그램 레이아웃에서로드합니다. 정확히 "로컬 파일 인 경우"는 무엇을 의미합니까? 우리는 사용자 (컴퓨터에있는 것을 의미) 또는 서버 (서버에 위치)에 대해 로컬 사용자를 말하고 있습니까? 둘째, 애셋에 직접 URL 링크가 필요한 이유가 확실하지 않습니다. 자산 폴더는 javascript, css 용이므로 공용 폴더에서 책을 펍에 게시해야합니다 (외부에서 액세스 할 수 있도록하려는 경우). 또한 외부 술집을 가리키면 어떻게됩니까? 작동하지 않는 것은 무엇입니까? –

+1

한 가지 더. 일반적으로 웹 페이지가 만들어지고 브라우저로 보내지 자마자 레일은 아무런 관련이 없습니다. 따라서 외부 URL 처리 문제는 javascrpt (코드 또는 ePub.js 코드)에 있어야합니다. –

답변

0

공용 폴더에서 라이브러리를 사용할 수 있도록 설정할 수 있습니다. 이 폴더는 자산 파이프 라인의 영향을받지 않습니다. 이미 사용 가능하므로 내용을 보호 할 필요가 없습니다. 그래서 공용 폴더에서 사용하는 데 아무런 문제가 없습니다.

단순히 일반적으로

<%= javascript_include_tag "/public/epub.js" %> 

는 내가 질문을 많이 가지고

관련 문제