【问题标题】:Integrating Ruby on Rails with Epub.js将 Ruby on Rails 与 Epub.js 集成
【发布时间】:2014-01-26 22:54:31
【问题描述】:

我们正在尝试构建一个使用 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 链接,这意味着我们还没有弄清楚如何使用 url 引用本地 epub 文件。

更复杂的情况是,即使我们在 routes.rb 中放置一个将 url 直接链接到资产的路由,这也不起作用,因为 Epub.js 不只是查看 epub 文件;它还使用解包它并使用 url 查看其本地内容。此外,外部 url(如 Project Gutenberg 的 .epub 文件)也不起作用。

有没有办法解决这个问题?我对 Rails 相当陌生,所以我想知道是否有任何我忽略的关键区域。我必须对 Epub.js 进行任何修改吗?我已经搜索了 Google 和 StackOverflow 的答案,但似乎没有很多项目集成 Rails 和 Epub.js。我也尝试过其他解决方案,例如 Readium.js,但它们似乎也不起作用。

非常感谢您的帮助!

【问题讨论】:

  • 我有很多问题。 “如果它是本地文件”究竟是什么意思?我们是在本地与用户交谈(意味着位于他的计算机上)还是在本地与服务器交谈(位于服务器上)?其次,我不确定您为什么要直接 URL 链接到资产。资产文件夹用于 javascript、css,您应该在公共文件夹中发布书籍(如果您希望它们可以从外部访问)。另外,如果你指向外部酒吧会发生什么?什么不起作用?
  • 还有一件事。一般来说,一旦网页被创建并输出到浏览器,rails 就与它没有任何关系。因此,处理外部 URL 的问题应该在 javascrpt(您的代码或 ePub.js 代码)中

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


【解决方案1】:

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

只需将其放在 rails_root/public 并正常加载到您的应用程序布局中

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

希望对你有帮助

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-06-18
    • 2012-10-14
    • 2019-01-07
    • 2012-03-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多