Jquery 为什么datatables.net在我的rails开发环境中工作,但在部署到heroku时却不工作?

Jquery 为什么datatables.net在我的rails开发环境中工作,但在部署到heroku时却不工作?,jquery,ruby-on-rails,heroku,datatables,Jquery,Ruby On Rails,Heroku,Datatables,在我的第一个Rails6项目中,我尝试将(jQuery插件)与Bootstrap5结合使用,这样我就可以在每个HTML表上获得奇特的表排序 在我的rails开发环境中,它在本地运行得非常好,但在我将它推到Heroku应用程序后,datatables组件似乎不起作用:我看到了数据库中的所有行,但列标题无法单击进行排序,搜索栏也不见了。由于某些原因,无法正确加载/激活datatables组件 我在网上搜罗了这么多线索,但似乎找不到解决办法 我尝试过但没有结果的事情: 在production.rb中

在我的第一个Rails6项目中,我尝试将(jQuery插件)与Bootstrap5结合使用,这样我就可以在每个HTML表上获得奇特的表排序

在我的rails开发环境中,它在本地运行得非常好,但在我将它推到Heroku应用程序后,datatables组件似乎不起作用:我看到了数据库中的所有行,但列标题无法单击进行排序,搜索栏也不见了。由于某些原因,无法正确加载/激活datatables组件

我在网上搜罗了这么多线索,但似乎找不到解决办法

我尝试过但没有结果的事情:

  • production.rb
    中切换
    config.assets.compile
    选项,强制Heroku预编译资产
  • 重新排列
    application.js中的需求列表
  • 使用类似SO问题/答案的
    application.js
    内容
  • 在开发人员控制台(F12)输出中寻找线索(我看到
    uncaughttypeerror
    错误,但它们似乎不相关,因为我在开发中也得到了这些信息,并且datatable在那里工作正常……)

我缺少什么?

Heroku在Postgresql数据库上运行。它不能与其他数据库一起正常工作。请您将数据库更改为postgresql并再次尝试抛出heroku,好吗?

我通过回溯我的步骤最终解决了这个问题;从头开始生成一个新的rails 6应用程序,并在本地和Heroku中仔细测试bootstrap和Datatables.net

如果有人有类似的问题,以下是我所做的:

  • 根据Chris Oliver关于如何在rails和Webpacker上安装bootstrap的精彩文章,生成一个新的rails 6应用程序

  • 然后通过运行添加datatables.net-bs4安装datatables.net

  • 将行
    require(“datatables.net-bs4”)
    添加到
    app/javascript/packs/application.js
    ,它看起来像:

    require(“@rails/ujs”).start()

    require(“turbolinks”).start()

    require(“@rails/activestorage”).start()

    需要(“频道”)

    require(“datatables.net-bs4”)

  • 并在文件末尾添加以下(示例)代码以初始化表ID上的数据表(在我的示例中为
    #mytable
    ):

    }))

  • 在视图文件(例如
    index.html.erb
    )中,向表添加ID属性(有关详细信息,请参阅Datatables.net):

    table class=“table”id=“mytable


  • 现在,该表在Heroku中正常工作。关于jQuery也没有控制台错误了。

    你能在本地运行
    rake assets:precompile
    并查看结果吗?@3DPrintScanner=>预编译输出被添加到帖子中。你有没有在
    cars.js
    文件中弹出
    console.log(xx)
    来检查它是否被加载了?您是否在开发人员控制台上尝试过相同的代码?好主意。这样做了,它发现了一大堆关于jQuery的错误。我想我混合了jQuery和datatables的不同安装。我将从头开始,逐步升级到datatables.net。我的本地和Heroku环境都运行在Postgresql数据库上,所以我认为这不会导致datatables.net出现故障。我看到了表中的数据,但(数据)表功能不起作用。
    $(document).ready( function () {
      $('#mytable').DataTable({
        "lengthMenu": [ [-1, 10, 50, 100], ["All", 10, 50, 100] ]
    });