在我的项目中,我尝试将我的大部分 js 库捆绑到 gems 中,以便可以在必要时更新和拉入它们,但是,我最近设置了我们的生产服务器,并且在资产编译和静态资产方面遇到了问题/公共/资产。
具体来说,当我不使用资产管道时,我对尝试使用的数据表或任何其他 JS 库或 css 没有任何问题。我在生产环境中预编译我的资产并使用典型的 nginx 设置(基于 railscast #335)为它们提供服务。
静态资产如下 -
公共/资产
javascript/jquery.formatCurrency-1.4.0.min.js
stylesheets/datepicker.css
twitter/bootstrap/bootstrap-datepicker.js
公共/资产是这些的正确位置吗?
当我使用 capistrano 部署时,这些资产在加载页面时会得到 404,并且实际上并未复制到服务器上的 /public/assets 目录。
加载其他页面时,我正在调用数据表插件,如下所示
$('#inventory_item_list_datatable').dataTable
sDom: "<'row'<'span6'l><'span6'f>r>t<'row'<'span6'i><'span6'p>>",
sPaginationType: "bootstrap",
iDisplayLength: 100
Datatables 被编译到我的 application.js 中并且不会引发错误,但该表从未真正呈现。我想知道这是否与编译所有内容的顺序有关?
应用程序/资产/javascripts/application.js
//= require jquery
//= require jquery_ujs
//= require jquery_nested_form
//= require twitter/bootstrap
//= require dataTables/jquery.dataTables
//= require dataTables/jquery.dataTables.bootstrap
//= require_tree .
应用程序/视图/布局/application.html.erb
<%= stylesheet_link_tag "application", :media => "all" %>
<link href="/assets/stylesheets/datepicker.css" media="all" rel="stylesheet" type="text/css" />
<%= javascript_include_tag "application" %>
<script src="/assets/twitter/bootstrap/bootstrap-datepicker.js" type="text/javascript"></script>
---编辑数据表问题
使用 jquery-datatables-rails gem 时,它必须在 gemfile 中的资产组之外。