【发布时间】:2012-07-31 22:09:22
【问题描述】:
我开始构建一个使用 jquery-datatables-rails 的 rails 项目。当我把它放到我的 Gemfile 中时,我没有把它放到资产组中。在开发中一切正常。当我将它投入生产时,我重新阅读了文档,发现它应该在资产组中,所以我将那行移到了我的 Gemfile 中。然后我执行了 rake assets:precompile 然后运行 rails server -e production。
数据表不起作用。事实上,我可以让它工作的唯一方法是将该行从我的 Gemfile 中的资产组中取出并在开发模式下运行。我在互联网上阅读了很多关于此的相互矛盾的信息。
我把线路从资产组外移到资产组有什么问题吗?我希望能够在生产中运行它,并且我希望有一个与 jquery-datatables-rails 文档一致的 Gemfile。
【问题讨论】:
-
需要有关故障模式的更多信息。如果您使用的是 WEBrick,那么它根本不会提供静态的预编译资产,除非您在 production.rb 中有
config.serve_static_assets = true。您是否在控制台中看到路由错误?当 gem 在资产组之外时,它在生产中是否可以正常工作? -
我正在使用 WEBrick,但在控制台中没有看到任何错误。看起来 jquery-datatables-rails 没有任何 javascript 加载。我在 production.rb 文件中将 config.serve_static_assets 设置为 true。我知道至少有一些静态资产得到了服务,因为我的资产组中有 twitter-bootstrap-rails,并且在生产中按预期工作。在我运行 rake assets:precompile 之前,我已经确认它在开发中都可以工作。那么无论哪种方式都行不通。
-
所以总结一下,无论 gem 'jquery-datatables-rails' 是否在资产组中,它在生产中都不起作用。在我运行 rake assets:precompile 之前,它将在开发中以两种方式工作,此时无论该行是否在资产中,它都将不再工作。困惑?
-
如果它在开发中一直有效,直到您运行
rake assets:precompile,那么您如何从中恢复?删除public/assets中的所有内容?运行该 rake 任务不应影响开发中的任何内容。如果是,则表明您的资产管道设置有问题。您是否对环境文件进行了任何其他更改?您是否尝试过制作一个简单的 Rails 测试应用程序,看看是否有同样的问题? -
我创建了一个应用程序只是为了将 development.rb 和 production.rb 文件与基线进行比较。开发文件中没有差异。在生产中,唯一的区别是serve_static_assets=true。实际上,我在 Github 上有这个项目目前处于半工作状态。 github.com/blackfist/CIFGlue我真的很感谢你花时间陪我做这件事。
标签: ruby-on-rails ruby-on-rails-3 datatables asset-pipeline