Как включить JavaScript из CDN в метеор?
Я хотел бы включить JS из CDN в Meteor, прежде чем включать мои собственные клиентские скрипты, чтобы клиентские скрипты могли зависеть от него.
...
<script type="text/javascript" src="https://ajax.googleapis.com/..."></script>
...
<script type="text/javascript" src="/client/..."></script>
...
Я попытался включить файл script через *.html и между тегами <head>
. Но кажется, что содержимое заголовка из *.html файлов всегда добавляется в конец заголовка HTML, независимо от того, где я помещаю его в иерархию файлов (например, размещение файла в папке lib или сортировка по алфавиту перед клиентскими JS файлами не поможет).
Любые идеи о том, как я мог бы включить JS из CDN перед клиентскими скриптами, не создавая смарт-пакет?
Ответы
Ответ 1
Предполагая, что вам не нужно загружать эти файлы перед пакетами Meteor, создайте JS файл, который загружается перед любым другим. Метеор загружает файлы в алфавитном порядке, поэтому он должен быть первым загруженным файлом. Для этого достаточно назвать его aaLoadCDN.js
. Динамически загружайте скрипты CDN, добавив в документ head
элемент script src
:
var script = document.createElement('script');
script.setAttribute('type', 'text/javascript'); // optional
script.setAttribute('src', 'url/to/the/cdn/script.js');
document.getElementsByTagName('head')[0].appendChild(script);
Вот некоторые реальные пакеты Meteor, загружающие скрипты из CDN:
Ответ 2
Вы можете добавить script после визуализации шаблона. Таким образом, ваш script будет загружаться только после загрузки каждой другой строки. Например, если вы непосредственно добавляете плагин jquery в свой шаблон html файл, вы получите ошибку "jquery not found". Но этот подход не позволяет:
Template.Main.onRendered(function () {
$('head').append('<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-formhelpers/2.3.0/js/bootstrap-formhelpers.js"></script>');
});
Ответ 3
Там также заброшенный пакет, называемый meteor-external-fileloader, который дает пример использования Stripe.js. Он не поддерживается с сентября 2013 года, поэтому будьте осторожны.