javascript - 预编译rails-3 Assets 管道,使javascript失败,阻止heroku部署

标签 javascript ruby-on-rails ruby heroku asset-pipeline

我使用datatables Rails-3.2.3/bootstrap 应用程序上的 Node.js,用于对表的字段进行排序。

如果我在本地运行应用程序而不预编译 Assets 管道,它工作正常,但是,一旦我运行:

RAILS_ENV=production bundle exec rake assets:precompile

生成的 public/assets 会阻止 DataTables 插件工作,即使它看起来正确打包到 public/assets/manifest.yml 文件和 public/assets 目录中:

lsoave@ubuntu:~/rails/github/gitwatcher$ ls -l app/assets/javascripts
total 84
-rw-rw-r-- 1 lsoave lsoave   553 2012-04-27 21:36 application.js
-rw-rw-r-- 1 lsoave lsoave    99 2012-04-20 21:37 bootstrap.js.coffee
-rw-rw-r-- 1 lsoave lsoave  3387 2012-04-26 20:12 DT_bootstrap.js
-rw-rw-r-- 1 lsoave lsoave 71947 2012-04-26 20:12 jquery.dataTables.min.js
lsoave@ubuntu:~/rails/github/gitwatcher$ 

application.js 看起来正确:

app/assets/javascripts/application.js:

//= require jquery
//= require jquery_ujs
//= require twitter/bootstrap
//= require DT_bootstrap
//= require jquery.dataTables.min
//= require_tree .

当然,这会带来更大的问题,因为它会阻止rails应用程序在heroku上工作(我可以从头开始编译应用程序,或者使用本地预编译的版本,但它们无论如何都不起作用)。

我该怎么办?

最佳答案

我自己刚刚开始工作。您是否使用jquery-datatables-rails gem?如果没有,你应该!将此行放入您的 gemfile 中:

gem 'jquery-datatables-rails', github: 'rweng/jquery-datatables-rails'

并运行:

bundle install

注意:不要将其放入您的 Assets 组中,否则在部署到 Heroku 时它将无法工作(因为生产中未使用 Assets 组)。

此外,请确保将此行放入您的 application.rb 中:

config.assets.initialize_on_precompile = false

将这些添加到您的 application.js

//= require dataTables/jquery.dataTables
//= require dataTables/jquery.dataTables.bootstrap

将其添加到您的 application.css 中:

 *= require dataTables/jquery.dataTables.bootstrap

并将其添加到您正在使用数据表的 Controller 的 js.coffee 文件中:

如果您使用液体容器:

#// For fluid containers
$('#dashboard').dataTable({
  "sDom": "<'row-fluid'<'span6'l><'span6'f>r>t<'row-fluid'<'span6'i><'span6'p>>",
  "sPaginationType": "bootstrap"
});

如果您使用固定宽度容器:

#// For fixed width containers
$('.datatable').dataTable({
  "sDom": "<'row'<'span6'l><'span6'f>r>t<'row'<'span6'i><'span6'p>>",
  "sPaginationType": "bootstrap"
});

关于javascript - 预编译rails-3 Assets 管道,使javascript失败,阻止heroku部署,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10357504/

相关文章:

javascript - React Hook Form 将复选框设置为选中状态

javascript - 检查输入的数字是否有效然后添加它们

ruby-on-rails - 我是否应该将二进制文件包含在 Rails 插件中?

javascript - 使用 Ant 连接 JavaScript 文件

javascript - 获取 parent 深度最大的 child

ruby-on-rails - simple_form 不显示错误

ruby-on-rails - 如何在 Azure AD 上使用 SSO 设置 RoR 应用程序

javascript - 如何通过javascript传递解析json值

ruby 正则表达式扫描与 =~

ruby - ruby 中的数组元素添加