Требование и усы (или любой другой двигатель): куда поместить шаблоны
-
27-10-2019 - |
Вопрос
Я использую Требуется а также Усы в приложении JavaScript. Содержание шаблонов находится внутри некоторых внешних файлов, которые загружаются через текстовый плагин.
Единственное, что меня немного раздражает, - это структура каталогов, которую навязывает. Все мои сценарии живут внутри js
каталог, как это
index.html
js
libs
require.js
text.js
jquery.js
...
controllers
...
views
...
...
Следовательно, я настраиваю requirejs с baseUrl = 'js'
, чтобы упростить имена модулей. Но это заставляет меня иметь шаблоны внутри js
Справочник, иначе они не видны текстовому плагину.
Есть ли способ настроить requirejs, чтобы зависимости от текстовых файлов ищут в другом месте, чем каталог сценариев?
(Конечно, я мог бы избежать текстового плагина и вручную определить запросы Ajax, чтобы захватить файлы, но это не является вопросом. Если возможно, я хотел бы использовать существующие инструменты)
Решение
Вы можете указать абсолютный путь. От док:
Однако, если имя зависимости обладает одним из следующих свойств, оно рассматривается как обычный путь файла, например, что -то, что было передано в тег:
- Заканчивается ".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 и легко их ссылаться.