Мне нужно отправить электронные письма из приложения MeteorJS, и я хочу сгенерировать их с помощью шаблонов html, а не по «html-in-js».
Что я пытался сделать:
1) Используйте Template.emailTemplate(data)
, но Template
не определен на стороне сервера.
2) Сохраните мои шаблоны для электронной почты как *.html
файлы подкатегории <app>/server/email/templates
, получите их содержимое с помощью fs.readSync()
, а затем скомпилируйте/отрисуйте его, используя встроенный пакет метеоритов handlebars
.
Это прекрасно работает в среде разработки, но не работает в комплекте с помощью прилагаемого приложения из-за *.html
файлов в каталоге server
. Кроме того, структура каталогов изменяется во время процесса связки, и относительные пути к шаблонам становятся недействительными.
3) Ваши предложения? =)MeteorJS: Генерация писем с шаблонов на стороне сервера
ответ
В настоящее время шаблоны не поддерживаются на стороне сервера. Эта функциональность приближается. В то же время я создал пакет, который может оказаться полезным, называется handlebars-server, который позволяет использовать Handlebars на сервере. Вы можете использовать пакет с атмосферой или путем копирования каталога проекта в папку с вашими пакетами. Ниже приведен пример:
Пример:
мои-email.handlebars
Hello, {{name}}
server.js
Email.send({
html: Handlebars.templates['my-email']({ name: 'Chris' })
});
Примечание
Нет шаблонов в файле руля. Просто поместите выражения html и Handlebars. Файл будет скомпилирован в функцию и назначен для свойства в объекте Handlebars.templates. Имя свойства будет именем файла за вычетом расширения руля.
Github
Другой вариант теперь использовать «частный» каталог на стороне сервера для чтения ресурсов из и использовать их для хранения ресурсов будет использовать приложение.
Создайте проект метеора, а затем создайте каталог/private.
Разместите ваши шаблоны там (Вы должны использовать пакет Метеор-рули-сервера вместо этого, если вам нужно рули)
Читайте в шаблоне с:
Assets.getText(assetPath, [asyncCallback]);
Очевидно, что вы также можете сделать поиск по шаблону regex/заменить на строку после ее загрузки.
пример:
var template = Assets.getText(assetPath); // Synchronous
var username = 'John Doe';
template = template.replace('{{username}}', username);
Email.send({
html: template
});
Для получения дополнительной информации о функциональных возможностях активов:. Meteor Assets
Meteor 0,8 *, здесь другое решение.
- 1. Использование HTML-шаблонов на стороне сервера
- 2. Генерация MeteorJS и PDF
- 3. Изменения на стороне сервера на стороне сервера на стороне сервера
- 4. обновления несколько шаблонов meteorjs
- 5. MeteorJS - сила перерисовки шаблонов
- 6. Обработка на стороне сервера шаблонов handlebars.js с Django
- 7. на стороне сервера - используйте
- 8. Генерация шаблонов с использованием Vhdl ...?
- 9. jQuery шаблоны на стороне сервера
- 10. AngularJS - на стороне сервера визуализации
- 11. На стороне сервера и на стороне клиента
- 12. Синтаксис Ярл-сервер на стороне сервера на стороне сервера
- 13. Исправление на стороне сервера или песочница на стороне сервера?
- 14. Предотвращение тайм-аута на стороне сервера на стороне сервера?
- 15. Механизм подписки на MeteorJS
- 16. Бесконечный сценарий сценария на стороне сервера на стороне сервера?
- 17. Проверка на стороне сервера
- 18. whmcs на стороне сервера
- 19. .Exe на стороне сервера
- 20. Печать на стороне сервера
- 21. отправка писем с использованием шаблонов в Mandrill
- 22. Отладка на стороне сервера
- 23. Задержка на стороне сервера
- 24. События на стороне сервера
- 25. На стороне сервера ASP.NET
- 26. Обнаружение замыкания на стороне сервера на стороне сервера
- 27. Кэширование на стороне сервера
- 28. Datatable на стороне сервера
- 29. MsgBox на стороне сервера
- 30. Meteor.subscribe на стороне сервера
Спасибо! Это именно то, что мне нужно! – th0r
Является ли это HTML-агностиком? То есть, могу ли я использовать его для шаблонов с обычным текстом? Благодаря! – hsribei