Rails 5.1.4:/vendor 中的第三方资产不会显示在视图中

Rails 5.1.4: Third-party assets in /vendor wont show in view

我正在尝试 运行 一个简单的 rails (-v 5.1.4) 应用程序,它实现了 amcharts 库附带的示例之一。

这是所做的工作:

我 运行 rails 服务器和图形按预期显示从原始独立 html 视图。因此我假设编辑后的代码工作正常。

以下是没有的方法:

当我 运行 rails 服务器没有给出错误但应用程序显示空白页面而不是图形时,页面的源代码显示了我的视图代码-按预期归档。

由于我各自的视图称为 amcharts.html.erb,因此我的 app/assets/javascripts/ 文件夹中有一个 amcharts.coffee 文件。 sprockets 会不会错误地认为这是它需要的文件?

我还想知道 app/config/manifest.js 是干什么用的。无论如何,所有与清单相关的更改似乎都是在 app/assets/javascript/application.js 文件中进行的...

编辑:我的视图文件的缩短版本 app/views/amcharts/index.html.erb(amcharts lib 中示例的修改代码)

<div id="chartdiv" style="width: 100%; height: 400px;"></div>
<script type="text/javascript">
var chart;
var chartData = [ { $data } ];
AmCharts.ready(function () { 
  chart = new AmCharts.AmSerialChart();
  chart.dataProvider = chartData;
  $AmCharts.funs
  chart.write("chartdiv");
});
</script>

JS包直接放在vendor/assets下,不要放在vendor/assets/javascripts下。例如,通过 //= require amcharts.

/vendor/assets/amcharts/amcharts.js 库添加到您的应用程序

对于更具体的示例,这是我在 Rails 5 应用程序中包含 DataTables 库的结构:

vendor/assets/DataTables-1.10.16/js/dataTables.bootstrap4.js
vendor/assets/DataTables-1.10.16/js/jquery.dataTables.js
vendor/assets/DataTables-1.10.16/css/dataTables.bootstrap4.css

(请注意 vendor/assets 下面的文件夹层次结构正是 DataTables 包提供的。)

application.css:

/*
 *= css/dataTables.bootstrap4
 */

application.js:

//= require js/jquery.dataTables
//= require js/dataTables.bootstrap4

我有机会与专业人士分享我的文件,他解决了问题。要走的路是:

  • 安装 gem 'amcharts-rails'、'rails-assets-amcharts3'
  • //= require amcharts3//= require amcharts3/serial添加到app/assets/javascripts/application.js

我仍然想知道如何包含来自 vendor/assets 的第三方内容。但是由于整个事情现在都在进行,没有错误文件夹中的文件,所以我将其标记为已回答。感谢所有试图提供帮助的人!