RequireJS и Mustache (или любой другой движок): куда помещать шаблоны
Я использую RequireJS и Усы в приложении Javascript. Содержимое шаблонов находится внутри некоторых внешних файлов, которые загружаются через текстовый плагин.
Единственное, что меня немного раздражает, так это структура каталогов, которую это навязывает. Все мои сценарии живут внутри js
каталог, как это
index.html
js
libs
require.js
text.js
jquery.js
...
controllers
...
views
...
...
Поэтому я настраиваю RequireJS с baseUrl = 'js'
, чтобы упростить имена модулей. Но это заставляет меня иметь шаблоны внутри js
каталог, в противном случае они не видны для текстового плагина.
Есть ли способ настроить RequireJS так, чтобы зависимости текстовых файлов просматривались не в каталоге сценариев, а в другом месте?
(Конечно, я мог бы избежать текстового плагина и вручную определять AJAX-запросы для захвата файлов, но это не главное. Если это возможно, я хотел бы использовать существующие инструменты)
2 ответа
Вы можете указать абсолютный путь. Из документов:
Однако если имя зависимости имеет одно из следующих свойств, оно рассматривается как обычный путь к файлу, как что-то, переданное тегу:
- Заканчивается в ".js"
- Начинается с "/"
- Содержит протокол URL, например, "http:" или "https:"
Я обычно настраиваю свой baseUrl на. и пути скриптов, начинающиеся с js, вот так:
require.config({
baseUrl: ".",
paths: {
"lodash": "js/ext/lodash/dist/lodash",
"jquery": "js/ext/jquery/jquery",
"domReady": "js/ext/requirejs-domready/domReady",
"text": "js/ext/requirejs-text/text.js"
}
});
Теперь я могу хранить шаблоны в./templates и легко ссылаться на них.