Pose una domanda e ottieni un riassunto del documento facendo riferimento a questa pagina e al provider AI di tua scelta
Cronologia delle versioni
- "Fusi configOptions in un unico oggetto opzioni; proxy incluso in intlayer()"v9.0.025/06/2026
Il contenuto di questa pagina è stato tradotto con un'IA.
Vedi l'ultima versione del contenuto originale in ingleseIf 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
intlayerProxy
intlayerProxy è un plugin Vite che registra un middleware di routing locale per ogni ambiente: server di sviluppo, server di anteprima e SSR in produzione (Nitro / TanStack Start).
A partire da Intlayer v9intlayerProxyè incluso automaticamente all'interno del plugin principaleintlayer()ed abilitato per impostazione predefinita tramiterouting.enableProxy: true. È necessario registrarlo separatamente solo se si ha bisogno di un controllo di livello inferiore o se lo si utilizza al di fuori della configurazione standard diintlayer().
Utilizzo
Come parte di intlayer() (consigliato, v9+)
Passa le opzioni proxy al plugin principale invece di registrare intlayerProxy separatamente:
Copiare il codice nella clipboard
// vite.config.tsimport { defineConfig } from "vite";import { intlayer } from "vite-intlayer";export default defineConfig({ plugins: [ intlayer({ proxy: { ignore: (req) => req.url?.startsWith("/api"), }, }), ],});Standalone (quando necessario)
Copiare il codice nella clipboard
// vite.config.tsimport { defineConfig } from "vite";import { intlayer } from "vite-intlayer";export default defineConfig({ plugins: [intlayer()],});Opzioni
Copiare il codice nella clipboard
import type { IntlayerProxyPluginOptions } from "vite-intlayer";Tutte le opzioni sono facoltative e passate come un singolo oggetto:
Apri la tabella in una finestra modale per visualizzare tutti i dati in modo chiaro
| Opzione | Tipo | Descrizione |
|---|---|---|
ignore | (req: IncomingMessage) => boolean | Predicato che esclude le richieste dal routing locale. Restituisci true per saltare una richiesta (es. rotte API, controlli di integrità). |
configOptions | GetConfigurationOptions | Sostituzioni della configurazione Intlayer inoltrate a getConfiguration(). Utilizzare quando si ha bisogno che il proxy legga uno specifico file di configurazione o sovrascriva valori. |
Esempio
Copiare il codice nella clipboard
intlayerProxy({ ignore: (req) => req.url?.startsWith("/api"), configOptions: { configFile: "./config/intlayer.config.ts" },});createIntlayerProxyHandler
createIntlayerProxyHandler crea un middleware Node.js (req, res, next) autonomo e indipendente dal framework che contiene tutta la logica di routing locale. È utile in ambienti in cui l'API del plugin Vite non è disponibile (es. un server Node.js semplice o un modulo Nitro personalizzato).
Copiare il codice nella clipboard
import { createIntlayerProxyHandler } from "vite-intlayer";const handler = createIntlayerProxyHandler({ ignore: (req) => req.url?.startsWith("/api"), configOptions: { configFile: "./config/intlayer.config.ts" },});// Express / Connectapp.use(handler);SSR in produzione (TanStack Start / Nitro via h3)
Copiare il codice nella clipboard
// server/middleware/intlayerProxy.tsimport { fromNodeMiddleware } from "h3";import { createIntlayerProxyHandler } from "vite-intlayer";export default fromNodeMiddleware( createIntlayerProxyHandler({ ignore: (req) => req.url?.startsWith("/api"), }));Comportamento del routing
Il middleware rispecchia la logica di routing del middleware next-intlayer e supporta tutte le modalità di routing di Intlayer.
Modalità di routing
Apri la tabella in una finestra modale per visualizzare tutti i dati in modo chiaro
| Modalità | URL visibile nel browser | Comportamento |
|---|---|---|
prefix | /it/about | Predefinito. Prefisso della lingua nell'URL. La lingua predefinita reindirizza all'URL senza prefisso a meno che non sia attivo prefix-all. |
prefix-all | /en/about, /it/about | Tutte le lingue — compresa quella predefinita — hanno sempre il prefisso. |
no-prefix | /about | Nessuna lingua nell'URL. La lingua viene memorizzata solo nei cookie; le riscritture URL avvengono internamente. |
search-params | /about?locale=it | Lingua passata come parametro di query. Reindirizza per aggiungere/aggiornare il parametro locale quando mancante o obsoleto. |
Priorità di rilevamento
- Prefisso del percorso URL (es.
/it/about→it). - Valore del cookie / localStorage (
intlayer-locale). - Intestazione
Accept-Language. defaultLocaledalla configurazione.
Bypass automatico
Il middleware fa passare sempre queste richieste direttamente senza gestione della lingua:
- Richieste corrispondenti al predicato
ignore. /node_modules/**/@**– Componenti interni di Vite (@vite/,@fs/,@id/, ecc.)./_**– Componenti interni del server (__vite_ping,__manifest, ecc.).- Richieste il cui percorso termina con un'estensione di file (risorse statiche). Se è presente un prefisso della lingua sul percorso di una risorsa statica (es.
/it/logo.png), questo viene rimosso in modo che il file possa essere servito correttamente.
Routing del dominio
Quando routing.domains è configurato nella tua configurazione Intlayer, il middleware gestisce il routing di lingua interdominio:
- Una richiesta per
/zh/aboutsuintlayer.orgviene reindirizzata ahttps://intlayer.zh/aboutquandodomains.zh = "intlayer.zh". - Una richiesta a
intlayer.zh/aboutviene riscritta internamente in/zh/aboutin modo che il parametro di rotta[locale]venga popolato.
Protezione dal ciclo di reindirizzamento
Il middleware tiene traccia dei conteggi di reindirizzamento per coppia originalUrl → newUrl entro una finestra temporale mobile di 2 secondi. Più di 10 reindirizzamenti all'interno di quella finestra restituiscono una risposta 500 con un errore descrittivo anziché creare un loop infinito.
Nitro / SSR in produzione (iniezione automatica, v9+)
Quando intlayerProxy viene utilizzato come plugin Vite, include una proprietà .nitro. Il plugin di compilazione nitro/vite legge questa proprietà e la inserisce in nitroConfig.modules, quindi intlayerNitroHandler viene registrato automaticamente come middleware del server Nitro — nessuna configurazione manuale è necessaria per il SSR in produzione.
Il gestore Nitro utilizza il modello di eventi della Web Fetch API di h3 v2 (non fromNodeMiddleware) quindi è compatibile con tutti i preset di Nitro: Node, Bun, Deno, runtime edge.
Alias obsoleti
Apri la tabella in una finestra modale per visualizzare tutti i dati in modo chiaro
| Esportazione obsoleta | Sostituzione |
|---|---|
intlayerMiddleware | intlayerProxy |
intLayerMiddlewarePlugin | intlayerProxy |