Muszę wysyłać wiadomości e-mail z aplikacji MeteorJS i chcę je generować za pomocą szablonów html, a nie przez "html-in-js" rzeczy.
Co próbowałem zrobić:
1) Użyj Template.emailTemplate(data)
, ale Template
nie jest zdefiniowany po stronie serwera.
2) Zapisz moje szablony wiadomości e-mail jako pliki *.html
pod katalogiem <app>/server/email/templates
, pobierz ich zawartość, używając fs.readSync()
, a następnie skompiluj/wyrenderuj za pomocą wbudowanego pakietu meteorowego handlebars
.
To działa dobrze w środowisku programistycznym, ale kończy się niepowodzeniem w produkcji przy użyciu dołączonej aplikacji, ponieważ pliki *.html
pod katalogiem server
nie są spakowane. Poza tym struktura katalogów zmienia się podczas procesu pakowania, a względne ścieżki do szablonów stają się nieważne.
3) Twoje propozycje? =)MeteorJS: Generowanie wiadomości e-mail z szablonów po stronie serwera
Odpowiedz
Obecnie szablony nie są obsługiwane po stronie serwera. Ta funkcjonalność nadchodzi. W międzyczasie stworzyłem pakiet, który można znaleźć przydatne handlebars-server, który pozwala używać Handlebars na serwerze. Możesz użyć pakietu z atmosferą lub kopiując katalog projektu do swojego folderu pakietów. Oto przykład:
przykład:
my-email.handlebars
Hello, {{name}}
server.js
Email.send({
html: Handlebars.templates['my-email']({ name: 'Chris' })
});
Uwaga
Brak szablonów w pliku kierownicy. Po prostu wpisz swoje wyrażenia html i Handlebars. Plik zostanie skompilowany do funkcji i przypisany do właściwości w obiekcie Handlebars.templates. Nazwa właściwości będzie nazwą pliku pomniejszoną o rozszerzenie kierownicy.
Github
Inną opcją jest użycie stronie serwera katalogu „prywatny” czytać z zasobów i wykorzystać je do przechowywania zasobów aplikacja będzie używać.
utwórz projekt meteor, a następnie utwórz katalog/private.
Place szablony tam (należy użyć pakietu Meteor-kierownica-serwer zamiast jeśli potrzeba kierownicę)
Czytaj w szablonie z:
Assets.getText(assetPath, [asyncCallback]);
Oczywiście można też zrobić pasujące do wzorca regex/replace na ciąg po wczytaniu.
przykład:
var template = Assets.getText(assetPath); // Synchronous
var username = 'John Doe';
template = template.replace('{{username}}', username);
Email.send({
html: template
});
Aby uzyskać więcej informacji na temat funkcjonalności aktywów. Meteor Assets
Meteor 0,8 *, tutaj jest inne rozwiązanie.
- 1. Renderowanie szablonów kierownic po stronie serwera w .NET/C#
- 2. email szablonów w Django
- 3. Czy ma sens renderowanie szablonów po stronie serwera?
- 4. CSS po stronie serwera?
- 5. Przekierowania po stronie serwera
- 6. Skanowanie po stronie serwera
- 7. Przeglądarka po stronie serwera
- 8. meteorJS wywołaj polecenie powłoki z serwera
- 9. Podłączanie do serwera SharePoint po stronie serwera
- 10. Auto-minify po stronie serwera?
- 11. GWT I18N po stronie serwera
- 12. Wdrażanie webrtc po stronie serwera
- 13. Przeglądanie stron po stronie serwera
- 14. Replikacja zastępcza po stronie serwera
- 15. stronicowanie po stronie serwera ngtable
- 16. React.js rendering po stronie serwera z PHP
- 17. javascript po stronie serwera - Ogólne
- 18. po stronie serwera w Meteor
- 19. Logika po stronie klienta LUB logika po stronie serwera?
- 20. Wymuszanie uwierzytelniania Facebook: po stronie klienta i po stronie serwera
- 21. Generowanie strony z danymi obrazu HTML na serwerze po stronie serwera?
- 22. Formularz weryfikacji po stronie serwera Angular.js
- 23. Zdarzenia po stronie serwera (dla manekinów :))
- 24. Kiedy korzystać po stronie klienta lub po stronie serwera?
- 25. Dlaczego renderowanie HTML po stronie serwera jest szybsze niż po stronie klienta?
- 26. Generowanie usługi WCF po stronie serwera automatycznie z istniejącego interfejsu API
- 27. read email Korzystanie z klienta Pop3 na stronie asp.net
- 28. Angular 2 Universal - Renderowanie po stronie serwera
- 29. Renderowanie po stronie serwera ReactJS w kolbie
- 30. TCL jako język programowania po stronie serwera
Dzięki! Właśnie tego potrzebowałem! – th0r
Czy to jest agnostykiem HTML? To znaczy, czy mogę użyć go również do szablonów tekstowych? Dzięki! – hsribei