TL, DR: (. Что далеко от того, как это работает на практике)Как загрузить CSS и Javascript файлов независимо от Метеор предположений о алфавитном порядкеМетеор CSS и JavaScript файлов загрузки лучшей практики
Stackoverflow говорит, что этот вопрос может быть субъективным, но я надеюсь, что нет.
Метеор загружает файлы, основанные на алфавитном порядке (и другие правила.)
Так, чтобы заставить его загрузить CSS и JS файлы в порядке, я хотел, я должен был начать fiels с числами, которые указывают на порядок загрузки. Если у меня есть jquery.js
и bootstrap.js
, Метеор будет загружать bootstrap.js
до jquery.js
. Но bootstrap зависит от jquery, поэтому сначала нужно загрузить jquery.
Для решения этой проблемы, следующие опции:
1. Поместите файлы в каталог public
и загрузите их вручную. Но это не сработало, поскольку, как представляется, Meteor отправляет файлы с типом MIME text/html
.
2. Создайте пакет Meteor и укажите там порядок загрузки. Я нахожу это как удар по мушке с молотком только для загрузки CSS и Javascript.
3. Поместите номер перед каждым файлом. В предыдущем примере, чтобы загрузить jquery перед загрузкой, переименуйте поля в 1.jquery.js
и 2.bootstrap.js
. Это работает и утомительно, но, по крайней мере, я могу загрузить файлы так, как я их хочу.
Я новичок в Meteor, поэтому мне интересно, рекомендуются ли рекомендации по этому вопросу. Я думал об использовании AMD для javascript, но это ограничено javascript.
Спасибо за ответ! придерживаться пути Метеор как можно больше, поэтому на данный момент я пошел с нумерацией файлов, а вторая проблема возникла. Когда я добавил «iron: router», он загружает шаблоны перед файлами javascript, которые зависят от шаблонов и теперь я чувствую, как будто мне приходится падать обезьяной каждый раз, что-то работать. Я собираюсь попробовать предложение папки '/ public', и я надеюсь, что он решает проблему с IronRouter. –
А что касается атмосферы, я увижу, нужны ли все пакеты, в которых я нуждаюсь. –
Я в конечном итоге придерживался системы нумерации. Перемещение файлов в папку '/ public' не решило проблему (но 404 действительно исчезло.) Что касается проблемы IronRouter, я переместил код в« Шаблон ».myTemplate.rendered', и теперь он работает. Благодаря :-) –