Я пытаюсь запустить простые рельсы (-v 5.1.4) приложение, которое реализует один из образцов, которые поставляются с библиотекой amcharts.
Вот что сделали работу:
/app/assets/javascripts/amcharts
папку/app/assets/javascripts/amcharts
//= require amcharts
в /app/assets/javascripts/application.js
Я запускаю сервер рельсов, и график отображается, как ожидалось, от просмотра оригинального автономного представления html. Поэтому я предполагаю, что отредактированный код работает правильно.
Вот что не получилось:
/vendor/assets(/javascripts)/amcharts
папку /vendor/assets(/javascripts)/amcharts
/vendor/assets(/javascripts)/amcharts
//= require amcharts
в /app/assets/javascripts/application.js
config.assets.paths << Rails.root.join('vendor/assets(/javascripts)/amcharts')
в config/application.rb
../../../vendor/assets(/javascripts)/amcharts/$name$.js
к app/assets/application.js
Когда я запускаю сервер rails, никакая ошибка не указана, но приложение отображает пустую белую страницу вместо графика, исходный код страницы показывает код моего представления -file, как и ожидалось.
Поскольку мое соответствующее мнение называется amcharts.html.erb
меня есть amcharts.coffee
-file в моем app/assets/javascripts/
-folder. Может ли это быть звездочки, ложно предполагает, что файл нужен?
Также интересно, для чего подходит app/config/manifest.js
. Все изменения, связанные с манифестом, как представляется, сделаны в файле app/assets/javascript/application.js
любом случае...
EDIT: сокращенная версия моего представления -file 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>
Я получил возможность поделиться своими файлами с профессионалом, и он исправил проблему. Путь был:
//= require amcharts3
, //= require amcharts3/serial
для app/assets/javascripts/application.jsМне все еще интересно, как включить сторонний контент из поставщика/активов. Но так как все работает сейчас без файлов в неправильных папках, я отмечу это как ответ. Спасибо всем, кто пытался помочь!
Поместите пакет JS непосредственно под vendor/assets
, а не в vendor/assets/javascripts
. Например, добавьте библиотеку /vendor/assets/amcharts/amcharts.js
в ваше приложение через //= require amcharts
.
Для более конкретного примера, здесь, как я структурировал, включая библиотеку DataTables в приложении Rails 5:
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
//= require amcharts/amcharts
и //= require amcharts/serial
в application.js. Также я попытался //= require amcharts
. Не повезло.
//= require amcharts
(edit: ах, у меня не было правильного названия библиотеки, которую вы пытаетесь использовать, удачи)