我正在使用数据表,这是JavaScript中的插件,用于对表中的记录进行排序,过滤,搜索...。

在一些论坛中搜索,我看到是否在config / enviroments / production.rb中设置了以下行

config.serve_static_assets = false


变为真实

 config.serve_static_assets = true


工作,真的工作。

但是我不这样做,因为其他JavaScript可以工作,因此不建议这样做。

因此,我测试了另一种方式,将所有内容复制到datatables.js中并直接在视图中剪切。

第一行是datatables.js的第一行。

<script type="text/javascripts">

 (function(i,zap,p){i.fn.dataTableSettings=[]; var D=i.fn.dataTablesSettings;i.fn...


$("#ranking").dataTable({
sPaginationType: "full_numbers",
iDisplayLength: 20,
bFilter: true,
aLengthMenu: false,
bLengthChange: false,
bAutoWidth: false,
/* fixa os valores da primeira coluna (index) */
fnDrawCallback: function ( oSettings ) {
/* Need to redo the counters if filtered or sorted */
  if ( oSettings.bSorted || oSettings.bFiltered ){
    for ( var i=0, iLen=oSettings.aiDisplay.length ; i<iLen ; i++ ){
        $('td:eq(0)', oSettings.aoData[ oSettings.aiDisplay[i] ].nTr ).html( i+1 );
    }
  }
},
aoColumnDefs: [
    { bSortable: false, aTargets: [ 0 ] },
  { aTargets: [ 14 ], bVisible: false }
],
aaSorting: [[ 13, 'desc' ]],
oLanguage: {
  sUrl: "/javascripts/i18n/data_tables_lang.json"
}
});
</script>


再说一次,在生产中没有用。

我想知道什么在生产中行不通,好吧,我复制了代码,没有使用Jammit之类的其他工具。

为什么不起作用?

最佳答案

我的小组定期使用数据表,没有问题。将dataTables.js文件放入您的vendor / assets / javascripts文件夹中并设置config.serve_static_assets = false

我也很想查看您的production.rb配置文件,因为该设置可能不是引起问题的唯一原因。

关于config.serve_static_asset设置,这是我在the documentation中找到的内容:


  config.serve_static_assets将Rails本身配置为服务静态资产。默认为true,但是在生产环境中已关闭,因为用于运行该应用程序的服务器软件(例如Nginx或Apache)应改为提供静态资产。与默认设置不同,在运行(绝对不建议!)或使用WEBrick在生产模式下测试您的应用时,请将其设置为true。否则,您将无法使用页面缓存,并且对公共目录下定期存在的文件的请求将仍然会影响您的Rails应用程序。

07-24 09:55