2014-01-26 65 views
3

我們正在嘗試構建一個使用Epub.js進行基本加載/查看功能的電子閱讀器應用程序。然而,我們正在嘗試用Rails 4.0來構建這個應用程序,而當我們嘗試Epub.js集成到我們的應用程序中,我們會碰到一些問題。將Ruby on Rails與Epub.js集成

我們試圖按照Github頁面上的Getting Started部分進行操作。我們有一個Book類來處理ePub加載。我把epub.min.js,zip.min.js和inflate.js文件都在app /資產/ JavaScript的文件夾中。然後,我們添加必要的javascript:

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

下面是我們遇到的主要問題。該ePub格式()將參數轉化爲URL - 如果它是一個本地文件,那麼URL將是http://localhost:3000/books/testbook.epub,例如。但由於鐵路的資產管道,我們不能有一個直接的URL鏈接的資產,這意味着我們還沒有想出如何引用本地EPUB文件的網址。

即使我們在routes.rb中將路由直接鏈接到資源,這也不起作用,這是因爲Epub.js不僅僅查看epub文件,它也使用unpackages並使用url來查看其本地內容。另外,外部URL(例如Project Gutenberg的.epub文件)也不起作用。

有沒有辦法解決這個問題?我對Rails相當陌生,所以我想知道是否有任何我忽略的關鍵區域。 Epub.js會有什麼修改,我必須做出來嗎?我已經沖刷谷歌和StackOverflow的答案,但似乎並沒有很多項目整合Rails和Epub.js.我也試過其他解決方案,比如Readium.js,而且他們似乎也沒有工作。

非常感謝您的幫助!

+0

我有很多的問題。這意味着什麼「如果它是一個本地文件」?我們是與本地用戶(意思是位於他的電腦上)還是本地服務器(位於服務器上)?其次,我不確定爲什麼你想要直接鏈接到資產。資產文件夾適用於JavaScript,CSS,您應該在公用文件夾中發佈圖書(如果您希望它們可以從外部訪問)。另外,如果您指向外部酒吧會發生什麼?什麼不行? –

+1

還有一件事。一般來說,只要網頁被創建並分發到瀏覽器,rails就沒有任何關係。所以,處理外部URL的問題應該在javascrpt中(您的代碼或ePub.js代碼) –

回答

0

你可以做的公用文件夾中的庫。該文件夾不受資產管道影響。因爲它已經可用,所以您不必確保其內容的安全。所以我看到從公用文件夾使用它沒有問題。

只需拖放到RAILS_ROOT /公衆和你的應用程序佈局加載它通常

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

希望它有助於