Przejdź do głównej zawartości
This is an unmaintained snapshot of the Astro v4 docs. View the latest docs.

Tryby renderowania

Kod Twojego projektu Astro musi zostać wyrenderowany do HTML, aby można go było wyświetlić w sieci.

Strony, ścieżki i endpointy API w Astro mogą być pre-renderowane w czasie budowania lub wyrenderowane na żądanie przez serwer w momencie, gdy ścieżka jest żądana. Dzięki wyspom Astro możesz również w razie potrzeby uwzględnić renderowanie po stronie klienta.

W Astro większość przetwarzania odbywa się na serwerze, a nie w przeglądarce. To zazwyczaj sprawia, że Twoja strona lub aplikacja działa szybciej niż przy renderowaniu po stronie klienta, zwłaszcza na mniej wydajnych urządzeniach lub przy wolniejszych łączach internetowych. Wyrenderowany HTML po stronie serwera jest szybki, przyjazny dla SEO i domyślnie dostępny.

Możesz skonfigurować sposób renderowania swoich stron w konfiguracji output (EN).

Domyślnym trybem renderowania jest output: 'static', który tworzy HTML dla wszystkich ścieżek Twojej strony w czasie budowania.

W tym trybie, cała Twoja strona będzie pre-renderowana, a serwer będzie miał wszystkie strony zbudowane z wyprzedzeniem i gotowe do wysłania do przeglądarki. Ten sam dokument HTML jest wysyłany do przeglądarki dla każdego odwiedzającego, a do aktualizacji zawartości strony wymagana jest pełna przebudowa witryny. Metoda ta znana jest również jako statyczne generowanie stron (SSG).

Domyślnie wszystkie projekty Astro są skonfigurowane tak, aby były wstępnie renderowane w czasie kompilacji (generowane statycznie), aby zapewnić jak najlżejsze doświadczenia w przeglądarce. Przeglądarka nie musi czekać na generowanie HTML, ponieważ serwer nie musi tworzyć stron na żądanie. Twoja strona nie jest zależna od wydajności backendowego źródła danych, a po zbudowaniu pozostanie dostępna dla odwiedzających jako strona statyczna, tak długo, jak Twój serwer będzie działał.

Statyczne strony mogą zawierać wyspy Astro dla interaktywnych komponentów UI (lub nawet całych osadzonych aplikacji renderowanych po stronie klienta!) napisanych w wybranym przez Ciebie frameworku UI (EN) na statycznej, pre-renderowanej stronie.

View Transitions API (EN) jest również dostępne w trybie static do animacji i zachowania stanu podczas nawigacji między stronami. Statyczne strony mogą również używać middleware (EN) do przechwytywania i przekształcania danych odpowiedzi z requesta.

Dzięki adapterowi SSR (EN), pozostałe dwa tryby output Astro mogą być skonfigurowane do włączenia renderowania na żądanie niektórych lub wszystkich Twoich stron, ścieżek lub endpointów API:

  • output: 'server' dla bardzo dynamicznych stron z większością lub wszystkimi ścieżkami renderowanymi na żądanie.
  • output: 'hybrid' dla głównie statycznych stron z niektórymi ścieżkami renderowanymi na żądanie.

Ponieważ są generowane przy każdym odwiedzeniu, te ścieżki mogą być dostosowane dla każdego użytkownika. Na przykład: strona renderowana na żądanie może pokazać zalogowanemu użytkownikowi informacje o jego koncie lub wyświetlić świeżo zaktualizowane dane bez konieczności pełnego przebudowania strony. Renderowanie na żądanie po stronie serwera w czasie żądania jest również znane jako server-side rendering (SSR).

Przeczytaj więcej o funkcjach dostępnych dla Ciebie dzięki renderowaniu na żądanie i adapterowi (EN), takich jak cookies, obiekty Response i Request, strumieniowanie HTML i inne.

Rozważ włączenie trybu server lub hybrid (EN) w swoim projekcie Astro, jeśli potrzebujesz następujących funkcji:

  • API endpoints: Twórz konkretne strony działające jako endpoint API dla zadań takich jak dostęp do bazy danych, uwierzytelnianie i autoryzacja, jednocześnie utrzymując wrażliwe dane ukryte przed klientem.

  • Chronione strony: Ogranicz dostęp do strony na podstawie uprawnień użytkownika, obsługując dostęp użytkownika na serwerze.

  • Często zmieniająca się zawartość: Generuj indywidualne strony bez konieczności statycznego przebudowywania witryny. Jest to przydatne, gdy zawartość strony często się aktualizuje, na przykład wyświetlanie danych z API wywoływanego dynamicznie za pomocą fetch().

Oba tryby wyjściowe server and hybrid pozwalają na włączenie wysp Astro do interaktywności (a nawet całych osadzonych aplikacji renderowanych po stronie klienta!) w wybranych przez Ciebie frameworkach UI (EN). Dzięki middleware (EN) i View Transitions API (EN) do animacji i zachowania stanu podczas nawigacji między stronami, możliwe są nawet bardzo interaktywne aplikacje.

Pomóż nam

Jak chcesz ją przekazać?

Otwórz Issue na GitHubie

Najszybszy sposób na powiadomienie nas o problemie.

Społeczność