Zadaj pytanie i otrzymaj streszczenie dokumentu, odwołując się do tej strony i wybranego dostawcy AI
Historia wersji
- "Przeniesiono z dokumentacji Intlayer CMS na osobną stronę"v9.0.08.07.2026
- "Dodano dokumentację synchronizacji na żywo"v6.0.122.09.2025
- "Zastąpiono pole `hotReload` polem `liveSync`"v6.0.04.09.2025
Treść tej strony została przetłumaczona przy użyciu sztucznej inteligencji.
Zobacz ostatnią wersję oryginalnej treści w języku angielskimIf you have an idea for improving this documentation, please feel free to contribute by submitting a pull request on GitHub.
GitHub link to the documentationCopy doc Markdown to clipboard
Synchronizacja na żywo
Synchronizacja na żywo pozwala Twojej aplikacji odzwierciedlać zmiany treści CMS w czasie rzeczywistym. Nie jest wymagane ponowne budowanie ani wdrażanie. Po włączeniu aktualizacje są przesyłane do serwera synchronizacji na żywo, który odświeża słowniki odczytywane przez Twoją aplikację.
Spis treści
Włączanie synchronizacji na żywo
Włącz synchronizację na żywo, aktualizując konfigurację Intlayer:
Skopiuj kod do schowka
import type { IntlayerConfig } from "intlayer";
const config: IntlayerConfig = {
// ... inne ustawienia konfiguracyjne
editor: {
/**
* Włącza hot reloading konfiguracji lokalizacji, gdy wykryte zostaną zmiany.
* Na przykład, gdy słownik zostanie dodany lub zaktualizowany, aplikacja aktualizuje
* wyświetlaną na stronie zawartość.
*
* Ponieważ hot reloading wymaga ciągłego połączenia z serwerem,
* jest dostępny tylko dla klientów planu `enterprise`.
*
* Domyślnie: false
*/
liveSync: true,
},
dictionary: {
/**
* Kontroluje sposób importowania słowników:
*
* - "live": Słowniki są pobierane dynamicznie za pomocą API Live Sync.
* Zastępuje useIntlayer funkcją useDictionaryDynamic.
*
* Uwaga: Tryb live korzysta z API Live Sync do pobierania słowników. Jeśli wywołanie API
* zakończy się niepowodzeniem, słowniki są importowane dynamicznie.
* Uwaga: Tryb live jest używany tylko dla słowników zdalnych i oznaczonych flagą "live".
* Pozostałe używają trybu dynamicznego dla wydajności.
*/
importMode: "fetch",
},
};
export default config;Uruchom serwer Live Sync, aby otoczyć swoją aplikację:
Przykład użycia samodzielnego serwera:
Skopiuj kod do schowka
{ "scripts": { // ... inne skrypty "live:start": "npx intlayer live", },}Możesz również używać swojego serwera aplikacji równolegle, korzystając z argumentu --process.
Przykład użycia Next.js:
Skopiuj kod do schowka
{ "scripts": { // ... inne skrypty "build": "next build", "dev": "next dev", "start": "npx intlayer live --with 'next start'", },}Przykład użycia Vite:
Skopiuj kod do schowka
{ "scripts": { // ... inne skrypty "build": "vite build", "dev": "vite dev", "start": "npx intlayer live --with 'vite start'", },}Serwer Live Sync otacza Twoją aplikację i automatycznie stosuje zaktualizowaną zawartość w momencie jej pojawienia się.
Aby otrzymywać powiadomienia o zmianach z CMS, serwer Live Sync utrzymuje połączenie SSE z backendem. Gdy zawartość w CMS ulega zmianie, backend przekazuje aktualizację do serwera Live Sync, który zapisuje nowe słowniki. Twoja aplikacja odzwierciedli aktualizację przy następnej nawigacji lub przeładowaniu przeglądarki, nie jest wymagane ponowne budowanie.
Schemat przepływu (CMS/Backend -> Serwer Live Sync -> Serwer aplikacji -> Frontend):
Jak to działa:
Przebieg pracy podczas developmentu (lokalnie)
- Podczas developmentu wszystkie zdalne słowniki są pobierane przy starcie aplikacji, dzięki czemu możesz szybko testować aktualizacje.
- Aby przetestować Live Sync lokalnie z Next.js, opakuj swój serwer deweloperski:
Skopiuj kod do schowka
{ "scripts": { // ... inne skrypty "dev": "npx intlayer live --with 'next dev'", // "dev": "npx intlayer live --with 'vite dev'", // Dla Vite },}Włącz optymalizację, aby Intlayer stosował transformacje importu Live podczas developmentu:
Skopiuj kod do schowka
import type { IntlayerConfig } from "intlayer";
const config: IntlayerConfig = {
editor: {
applicationURL: "http://localhost:5173",
liveSyncURL: "http://localhost:4000",
liveSync: true,
},
dictionary: {
importMode: "fetch",
},
build: {
optimize: true,
},
};
export default config;To ustawienie owija Twój serwer deweloperski serwerem Live Sync, pobiera zdalne słowniki podczas uruchamiania i przesyła aktualizacje z CMS za pomocą SSE. Odśwież stronę, aby zobaczyć zmiany.
Uwagi i ograniczenia
- Dodaj pochodzenie live sync do polityki bezpieczeństwa swojej strony (CSP). Upewnij się, że adres URL live sync jest dozwolony w
connect-src(orazframe-ancestors, jeśli ma to zastosowanie). - Live Sync nie działa ze statycznym outputem. W Next.js strona musi być dynamiczna, aby otrzymywać aktualizacje w czasie wykonywania (np. użyj
generateStaticParams,generateMetadata,getServerSidePropslubgetStaticPropsodpowiednio, aby uniknąć pełnych ograniczeń statycznych). - W CMS każdy słownik ma flagę
live. Tylko słowniki zlive=truesą pobierane przez API live sync; pozostałe są importowane dynamicznie i pozostają niezmienione w czasie wykonywania. - Flaga
livejest oceniana dla każdego słownika podczas budowania (build time). Jeśli zdalna zawartość nie była oznaczona jakolive=truepodczas budowania (build time), musisz przebudować projekt, aby włączyć Live Sync dla tego słownika. - Serwer live sync musi mieć możliwość zapisu do
.intlayer. W kontenerach upewnij się, że masz dostęp do zapisu do/.intlayer.