将Ruby on Rails与Epub.js集成

时间:2014-01-26 22:54:31

标签: javascript ruby-on-rails ruby-on-rails-4 epub

我们正在尝试构建一个使用Epub.js进行基本加载/查看功能的电子阅读器应用程序。但是,我们正在尝试使用Rails 4.0来构建这个应用程序,当我们尝试将Epub.js集成到我们的应用程序中时,我们遇到了一些问题。

我们尝试按照Github页面上的“入门”部分进行操作。我们有一个Book类来处理ePub加载。我将epub.min.js,zip.min.js和inflate.js文件全部放在app / assets / javascripts文件夹中。然后,我们添加必要的javascript:

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

这是我们遇到重大问题的地方。 ePub()所采用的参数被转换为url - 如果它是本地文件,那么url将是http://localhost:3000/books/testbook.epub。但由于Rail的资产管道,我们无法直接链接到资产,这意味着我们还没有弄清楚如何使用url引用本地epub文件。

由于Epub.js不只是查看epub文件,因此即使我们在routes.rb中将路由直接链接到资源,这也不会产生更多复杂因素。它还使用unpackages并使用url查看其本地内容。此外,外部URL(如Project Gutenberg的.epub文件)也不起作用。

这有什么办法吗?我对Rails相当新,所以我想知道是否有任何关键领域我都会忽略。我不得不对Epub.js进行任何修改吗?我已经搜索了谷歌和StackOverflow的答案,但似乎没有很多项目集成Rails和Epub.js.我也尝试过其他解决方案,比如Readium.js,它们似乎也没有用。

非常感谢你的帮助!

1 个答案:

答案 0 :(得分:0)

您可以在公用文件夹中使用该库。此文件夹不受资产管道的影响。您不必保护其内容,因为它已经可用。所以我认为从公共文件夹中使用它没有任何问题。

只需将其放在rails_root / public上,然后将其加载到应用程序布局中

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

希望有所帮助