我正在使用数据表,一个JavaScript插件来对表中的记录进行排序,过滤,搜索....
在一些foruns中搜索,我看到我是否在config / enviroments / production.rb中设置了以下这一行
config.serve_static_assets = false
到真
config.serve_static_assets = true
工作并且真的有效。
但我不这样做,因为另一个JavaScripts工作,不推荐这种方式。
所以,我测试了另一种方法,我复制了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这样的任何其他宝石。
为什么不工作?
答案 0 :(得分:1)
我的小组定期使用数据表,没有问题。将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应用程序。