Wbudowane biblioteki programu Loving Go, obecnie właśnie deklaruję szablon jako ciąg stały. W jaki sposób zwykle chodzi o uwzględnienie większych, bardziej wyrafinowanych plików szablonów? Najlepiej byłoby, gdyby znajdowały się wewnątrz pliku binarnego, aby uprościć wdrażanie.W tym pliki szablonów/html w twoim binarnym
Odpowiedz
Nie ma standardowego sposobu zrobienia tego w programie Go.
Jak pokazują komentarze, dostępnych jest kilka bibliotek, które pomogą przekształcić dane binarne (np. Szablony, obrazy np.) W pliki źródłowe Go, które można skompilować z własnymi plikami źródłowymi do ostatecznego pliku binarnego.
Chociaż to podejście sprawdza się w przypadku wielu projektów, zalecam ponowne rozważenie. Kosztem łatwej dystrybucji jest to, że musisz ponownie wygenerować pliki źródłowe, tworząc zasoby przed skompilowaniem głównego kodu źródłowego i kiedy chcesz rozpowszechnić niewielką zmianę w szablonach/javascript/images & np. w ten sposób będziesz musiał ponownie skompilować i zrestartować cały serwer.
W przypadku większości projektów, w których pracowałem nad zmianami w frontendach, jest to zdecydowanie najczęstszy rodzaj zmiany - co spowodowało, że odeszliśmy od tej praktyki.
To prawda, ale wolałbym mieć tylko jeden plik, który muszę wdrożyć/wypchnąć na każdym serwerze, a kiedy wszystko jest w jednym pliku, łatwiej jest przywrócić wcześniejszą wersję . Konieczność edytowania i przesyłania/synchronizowania kolekcji plików szablonów jest dość niewygodna. Jak to zrobić, być może raunchy. Łatwiej spakować wszystko w jednym pliku, argumentowałbym. – Jacob
Oto rozwiązanie, które spełnia potrzeby i zapobiega trudności opisanej przez mbazon:
https://godoc.org/github.com/jteeuwen/go-bindata
To kompiluje do binarnego, ale kiedy jesteś w trybie „debug”, odczytuje bezpośrednio swoje aktywa statycznych z dysku.
packr
jest podobna do go-bindata
, ale aktywnie utrzymane, a może nawet trochę ładniejszy używać:
- 1. Różnica między subversion, w tym nowe pliki
- 2. Używanie FXCop w twoim projekcie
- 3. Co jest w twoim .procmailrc
- 4. Aplikacja Niezainstalowana w Twoim telefonie
- 5. odniesienia/w tym pliki xsd w słoju
- 6. w tym pliki nagłówkowe z różnych katalogów?
- 7. W tym pliki PHP z frameworkiem Laravel
- 8. tym pliki spoza projektu w MSBuild
- 9. W tym pliki nagłówkowe rekurencyjnie dla syntastycznego
- 10. tym pliki JS (jQuery) w JSPX plików
- 11. Obsługa wielu wersji Pythona w twoim kodzie?
- 12. Wyświetl plik w formacie binarnym
- 13. Jak uzyskać pliki w katalogu, w tym wszystkie podkatalogi
- 14. W tym pliki danych tylko w kablowym zestawie testów
- 15. w tym pliki nagłówkowe w C i kompilacja
- 16. W tym pliki skryptów w pakiecie rozszerzającym R
- 17. Uruchamianie wierszy poleceń w twoim skrypcie w języku Python
- 18. Złożoność dla maxheight funkcji w binarnym drzewie
- 19. W PHP, co jest ciągiem binarnym (b'xxxx ')?
- 20. W tym standardowe pliki nagłówkowe. string.h czy cstring? lub oba?
- 21. Pliki EXE aplikacji WPF i konsoli w tym samym rozwiązaniu
- 22. Jak dodać dwa pliki google-services.json w tym samym projekcie?
- 23. Jak zminimalizować i zacieśnić pliki w tym samym pliku przeglądarki?
- 24. LD_PRELOAD z setuidem binarnym
- 25. Różnica między kompletnym drzewem binarnym i zbalansowanym drzewem binarnym
- 26. błąd w twoim Gemfile, a Bundler nie może kontynuować
- 27. Composer - żądane rozszerzenie PHP mbstring brakuje w twoim systemie
- 28. usuwanie rekursywne na drzewie binarnym
- 29. parsowanie złożonego wyrażenia logicznego w pyparsing w drzewie binarnym
- 30. Konwertuj ciąg w formacie binarnym na int, w C
Czy to znaczy jak go-bindata lub go.rice? (http://stackoverflow.com/q/12482311/6309) – VonC
może? Wyglądają jak narzędzia firm trzecich. Czy to znaczy, że nie ma znormalizowanego sposobu? (Jestem trochę zaskoczony, jeśli tak jest) – Jacob