2015-02-05 3 views
0

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.

ответ

1

Его интересный вопрос, и это, вероятно, одна из подводных камней создания приложения Meteor.

Вы упомянули все доступные решения, такие как создание явного пакета или переименование файлов.

Лучшим способом, я бы подумал, является использование пакетов атмосферы. Например, если вы добавляете бутстрап, jquery - это зависимость от него, поэтому он всегда будет загружаться первым. Большинство js-библиотек, которые включают порядок загрузки, обычно находятся в атмосфере.

Другой лучший способ, если нет пакета атмосферы, хотя я не уверен, что я бы сказал, что это утомительно, чтобы поставить номер перед файлом js, чтобы указать порядок загрузки.

Одно дело, когда вы используете /public папку файлы карт для /, так что вы можете загрузить JS файл самостоятельно вручную в порядке, вы хотите (в корневой HTML-файл с помощью/общественности. Метеор возвращает текст/html MIME-тип в качестве версии ошибки 404-файла не найден. Этот метод немного хлопот, хотя из-за того, что файлы разделены в процессе производства и могут вызвать проблемы, если одна или другая не загружается.

+0

Спасибо за ответ! придерживаться пути Метеор как можно больше, поэтому на данный момент я пошел с нумерацией файлов, а вторая проблема возникла. Когда я добавил «iron: router», он загружает шаблоны перед файлами javascript, которые зависят от шаблонов и теперь я чувствую, как будто мне приходится падать обезьяной каждый раз, что-то работать. Я собираюсь попробовать предложение папки '/ public', и я надеюсь, что он решает проблему с IronRouter. –

+0

А что касается атмосферы, я увижу, нужны ли все пакеты, в которых я нуждаюсь. –

+0

Я в конечном итоге придерживался системы нумерации. Перемещение файлов в папку '/ public' не решило проблему (но 404 действительно исчезло.) Что касается проблемы IronRouter, я переместил код в« Шаблон ».myTemplate.rendered', и теперь он работает. Благодаря :-) –

Смежные вопросы