我正在使用数据表,这是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应用程序。