私のプロジェクトでは、ほとんどのjsライブラリをgemにバンドルして、必要に応じて更新およびプルできるようにしましたが、最近本番サーバーをセットアップしたため、アセットのコンパイルと静的アセットに問題があります。 / public/assets。
具体的には、アセットパイプラインを使用しない場合、使用しようとしているデータテーブルやその他の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ディレクトリにコピーされません。
他のページをロードするとき、私は次のようにdatatablesプラグインを呼び出しています
$('#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にコンパイルされ、エラーをスローしませんが、テーブルが実際にレンダリングされることはありません。これはすべてがコンパイルされる順序に関連しているのだろうか?
app / Assets / 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 .
app / views / layouts / 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のアセットグループの外部にある必要があります。