Niedawno zacząłem pracować w Node.js iw pliku app.js jest taka linia:
app.use(express.favicon());
Jak teraz mogę skonfigurować własny, niestandardowy plik favicon.ico?
javascript
node.js
express
favicon
Ilya Karnaukhov
źródło
źródło
app.use(express.favicon())
z Express 4 daje: Większość oprogramowania pośredniego (np. Favicon) nie jest już dołączana do Express i musi być zainstalowana oddzielnie. Odwiedź stronę github.com/senchalabs/connect#middleware . Alternatywnie, nie możesz podać favicon za pomocą:app.get('/favicon.ico', (req, res) => res.status(200))
Express js disable GET /favicon.icoOdpowiedzi:
W Express 4
Zainstaluj oprogramowanie pośredniczące favicon, a następnie wykonaj:
Lub lepiej, korzystając z
path
modułu:(pamiętaj, że to rozwiązanie będzie działać również w aplikacjach Express 3)
W Express 3
Zgodnie z API
.favicon
akceptuje parametr lokalizacji:W większości przypadków możesz chcieć tego (zgodnie z sugestią vsync):
Albo jeszcze lepiej, skorzystaj z
path
modułu (jak zasugerował Druska):Dlaczego favicon jest lepszy niż statyczny
Zgodnie z opisem pakietu :
ETag
oparte na zawartości ikony, a nie właściwości systemu plików.Content-Type
.źródło
path.join(__dirname, "public")
że łańcuchy są łączone bez separatora? Im mniejsza próbka, tym szybciej możemy to naprawić (więc jeśli możesz tylko połączyć część).Content-Type
. Możesz zobaczyć, co robi tutaj . Czy uważasz, że zmiana tego w odpowiedzi ma sens?Nie są wymagane żadne dodatkowe oprogramowanie pośredniczące. Po prostu użyj:
źródło
Content-Type
smiley favicon, aby zapobiec błędom:
zmienić ikonę w powyższym kodzie
zrób ikonę, może tutaj: http://www.favicon.cc/ lub tutaj: http://favicon-generator.org
przekonwertuj go na base64, może tutaj: http://base64converter.com/
następnie zamień podstawową wartość ikony 64
ogólne informacje o tworzeniu spersonalizowanej ikony ulubionych
ikony są tworzone za pomocą Photoshopa lub Inkscape, może Inkscape, a następnie Photoshopa w celu korekcji jaskrawości i kolorów (w menu obraz-> dopasowania).
aby uzyskać szybką ikonę przejdź do http://www.clker.com/ i wybierz kilka Vector Clip Arts i pobierz jako svg. następnie przenieś go do inkscape ( https://inkscape.org/ ) i zmień kolory lub usuń części, może dodaj coś z innego wektorowego obrazu clipart, a następnie, aby wyeksportować, wybierz części do wyeksportowania i kliknij plik> eksportuj, wybierz rozmiar jak 16x16 dla favicon lub 32x32. do dalszej edycji 128x128 lub 256x256. Pakiet ico może mieć kilka rozmiarów ikon w środku. może mieć wraz z ulubioną ikoną 16x16 pikseli wysokiej jakości ikony linku do strony internetowej.
następnie może poprawić obraz w Photoshopie. jak jaskrawość, efekt skosu, okrągła maska, cokolwiek.
następnie prześlij ten obraz do jednej z witryn generujących favicony. istnieją również programy dla okien do edycji ikon, takie jak https://sourceforge.net/projects/variicons/ .
aby dodać favicon do strony internetowej. po prostu umieść favicon.ico jako plik w folderze głównym domeny. na przykład w node.js w folderze publicznym, który zawiera pliki statyczne. nie musi to być nic specjalnego, jak powyższy kod, tylko prosty plik.
źródło
Nie potrzebujesz niestandardowego oprogramowania pośredniego ?! W ekspresowym:
Następnie umieść swoją ulubioną ikonę publicznie i dodaj następujący wiersz w głowie html:
źródło
Miałem to działać lokalnie bez tego,
__dirname +
ale nie mogłem go uruchomić na moim wdrożonym serwerze.źródło
app.use(express.favicon('./public/images/favicon.ico'));
Jeśli używasz Express> 4.0, możesz skorzystać z favicon serwisu
źródło
Jeśli masz ustawioną ścieżkę statyczną, po prostu użyj
<link rel="icon" href="https://stackoverflow.com/images/favicon.ico" type="image/x-icon">
w swoich widokach. Nie potrzeba nic więcej. Upewnij się, że masz folder ze zdjęciami w folderze publicznym.źródło
127.0.0.1
zamiastlocalhost
Google Chrome podczas programowania, z jakiegoś powodu to naprawiło to dla mnie.Zainstaluj
express-favicon
oprogramowanie pośredniczące:Użyj tego w ten sposób:
źródło
Aby udostępniać ikonę ulubionych, musisz zainstalować oprogramowanie pośredniczące.
Próbowałem tego właśnie teraz:
i otrzymałem z powrotem ten komunikat o błędzie:
Myślę, że możemy to uznać za ostateczne.
źródło
Poniższy kod działa:
Po prostu pamiętaj, aby odświeżyć przeglądarkę lub wyczyścić pamięć podręczną.
źródło
Krok 0: dodaj poniższy kod do app.js lub index.js
app.use("/favicon.ico", express.static('public/favicon.ico'));
Krok 1: ikona pobierania stąd https://icons8.com/ lub utwórz własny
krok 2: przejdź do https://www.favicongenerator.com/
krok 3 : prześlij pobrany plik icon.png> ustaw 16px> utwórz favicon> pobierz
krok 4: przejdź do folderu pobierania, znajdziesz [plik .ico], zmień jego nazwę na favicon.ico
krok 5: skopiuj favicon.ico do katalogu publicznego utworzyłeś
krok 6: dodaj poniższy kod do pliku .pug pod tagiem head, poniżej tagu tytułu
krok 7: zapisz> zrestartuj serwer> zamknij przeglądarkę> ponownie otwórz przeglądarkę> pojawia się ikona favicon
UWAGA: możesz użyć nazwy innej niż favicon,
ale pamiętaj, aby zmienić nazwę w kodzie i folderze publicznym.
źródło
W app.js:
Zakładając, że ikona znajduje się w „/public/images/favicon.ico” dodaj następny link w nagłówku HTML:
To działało dobrze w projekcie wygenerowanym automatycznie za pomocą polecenia:
źródło
Jeśli potrzebujesz rozwiązania, które nie obejmuje plików zewnętrznych i nie używa
express.static
(na przykład superlekkiego serwera internetowego i witryny z jednym plikiem), możesz użyćserve-favicon
i zakodować swójfavicon.ico
plik jako Base64. Lubię to:Zastąp
IMAGE_AS_BASE64_STRING_GOES_HERE
wynikiem kodowania pliku favicon jako Base64. Istnieje wiele witryn, które mogą to zrobić w Internecie, muszą przeprowadzić wyszukiwanie.Pamiętaj, że może być konieczne ponowne uruchomienie serwera i / lub przeglądarki, aby zobaczyć, jak działa
localhost
, oraz twarde odświeżenie / wyczyszczenie pamięci podręcznej przeglądarki, aby zobaczyć, jak działa w Internecie.źródło