Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Utilizzo della specifica di distribuzione di Amplify Hosting per configurare l'output della build
La specifica di distribuzione di Amplify Hosting è una specifica basata su file system che definisce la struttura di directory che facilita le distribuzioni su Amplify Hosting. Un framework può generare questa struttura di directory prevista come output del suo comando build, consentendo al framework di sfruttare le primitive di servizio di Amplify Hosting. Amplify Hosting comprende la struttura del pacchetto di distribuzione e lo distribuisce di conseguenza.
Per una dimostrazione video che spiega come utilizzare le specifiche di distribuzione, vedi Come ospitare qualsiasi sito Web utilizzando AWS Amplify il YouTube canale Amazon Web Services.
Di seguito è riportato un esempio della struttura di cartelle prevista da Amplify per il pacchetto di distribuzione. Ad alto livello, ha una cartella denominatastatic
, una cartella denominata compute
e un file manifesto di distribuzione denominato. deploy-manifest.json
.amplify-hosting/ ├── compute/ │ └── default/ │ ├── chunks/ │ │ └── app/ │ │ ├── _nuxt/ │ │ │ ├── index-xxx.mjs │ │ │ └── index-styles.xxx.js │ │ └── server.mjs │ ├── node_modules/ │ └── server.js ├── static/ │ ├── css/ │ │ └── nuxt-google-fonts.css │ ├── fonts/ │ │ ├── font.woff2 │ ├── _nuxt/ │ │ ├── builds/ │ │ │ └── latest.json │ │ └── entry.xxx.js │ ├── favicon.ico │ └── robots.txt └── deploy-manifest.json
Amplify: supporto SSR primitivo
La specifica di implementazione di Amplify Hosting definisce un contratto che si avvicina strettamente alle seguenti primitive.
- Risorse statiche
-
Fornisce ai framework la possibilità di ospitare file statici.
- Calcolo
-
Fornisce ai framework la possibilità di eseguire un HTTP server Node.js sulla porta 3000.
- Ottimizzazione delle immagini
-
Fornisce ai framework un servizio per ottimizzare le immagini in fase di esecuzione.
- Regole di routing
-
Fornisce ai framework un meccanismo per mappare i percorsi delle richieste in entrata verso obiettivi specifici.
Il .amplify-hosting/static directory
È necessario inserire nella directory tutti i file statici accessibili al pubblico che devono essere forniti dall'applicazioneURL. .amplify-hosting/static
I file all'interno di questa directory vengono serviti tramite la primitiva static assets.
I file statici sono accessibili nella radice (/) dell'applicazione URL senza alcuna modifica al contenuto, al nome del file o all'estensione. Inoltre, le sottodirectory vengono mantenute nella URL struttura e vengono visualizzate prima del nome del file. Ad esempio, .amplify-hosting/static/favicon.ico
verranno servite da https://myAppId.amplify-hostingapp.com/favicon.ico
e .amplify-hosting/static/_nuxt/main.js
verranno servite da
https://myAppId.amplify-hostingapp.com/_nuxt/main.js
Se un framework supporta la possibilità di modificare il percorso di base dell'applicazione, deve anteporre il percorso di base alle risorse statiche all'interno della .amplify-hosting/static
directory. Ad esempio, se il percorso di base è/folder1/folder2
, l'output di build per una risorsa statica chiamata main.css
sarà. .amplify-hosting/static/folder1/folder2/main.css
Il .amplify-hosting/compute directory
Una singola risorsa di calcolo è rappresentata da una singola sottodirectory denominata default
contenuta all'interno della .amplify-hosting/compute
directory. Il percorso è. .amplify-hosting/compute/default
Questa risorsa di calcolo è mappata alla primitiva di calcolo di Amplify Hosting.
Il contenuto della default
sottodirectory deve essere conforme alle seguenti regole.
-
Un file deve esistere nella radice della
default
sottodirectory, per fungere da punto di ingresso alla risorsa di calcolo. -
Il file del punto di ingresso deve essere un modulo Node.js e deve avviare un HTTP server in ascolto sulla porta 3000.
-
È possibile inserire altri file nella
default
sottodirectory e farvi riferimento dal codice contenuto nel file del punto di ingresso. -
Il contenuto della sottodirectory deve essere autonomo. Il codice nel modulo del punto di ingresso non può fare riferimento a nessun modulo al di fuori della sottodirectory. Nota che i framework possono raggruppare i loro HTTP server nel modo che preferiscono. Se il processo di calcolo può essere avviato con il
node server.js
comando, whereserver.js is
is the name del file di ingresso, dall'interno della sottodirectory, Amplify considera la struttura della directory conforme alle specifiche di distribuzione.
Amplify Hosting raggruppa e distribuisce tutti i file all'interno della sottodirectory in una risorsa di default
elaborazione fornita. A ogni risorsa di elaborazione vengono allocati 512 MB di storage temporaneo. Questo storage non è condiviso tra le istanze di esecuzione, ma è condiviso tra le chiamate successive all'interno della stessa istanza di esecuzione. Le istanze di esecuzione sono limitate a un tempo di esecuzione massimo di 15 minuti e l'unico percorso scrivibile all'interno dell'istanza di esecuzione è la directory. /tmp
La dimensione compressa di ogni pacchetto di risorse di elaborazione non può superare i 220 MB. Ad esempio, la .amplify/compute/default
sottodirectory non può superare i 220 MB quando è compressa.
Il .amplify-hosting/deploy-manifest.json file
Utilizzate il deploy-manifest.json
file per archiviare i dettagli di configurazione e i metadati per una distribuzione. Come minimo, un deploy-manifest.json
file deve includere un version
attributo, l'routes
attributo con un percorso generico specificato e l'framework
attributo con i metadati del framework specificati.
La seguente definizione dell'oggetto illustra la configurazione per un manifesto di distribuzione.
type DeployManifest = { version: 1; routes: Route[]; computeResources?: ComputeResource[]; imageSettings?: ImageSettings; framework: FrameworkMetadata; };
I seguenti argomenti descrivono i dettagli e l'utilizzo di ogni attributo nel manifesto di distribuzione.
Utilizzo dell'attributo version
L'version
attributo definisce la versione della specifica di distribuzione che si sta implementando. Attualmente, l'unica versione per le specifiche di distribuzione di Amplify Hosting è la versione 1. L'JSONesempio seguente dimostra l'utilizzo dell'attributo. version
"version": 1
Utilizzo dell'attributo routes
L'routes
attributo consente ai framework di sfruttare la primitiva delle regole di routing di Amplify Hosting. Le regole di routing forniscono un meccanismo per instradare i percorsi delle richieste in entrata verso una destinazione specifica nel pacchetto di distribuzione. Le regole di routing determinano solo la destinazione di una richiesta in entrata e vengono applicate dopo che la richiesta è stata trasformata dalle regole di riscrittura e reindirizzamento. Per ulteriori informazioni su come Amplify Hosting gestisce le riscritture e i reindirizzamenti, consulta. Configurazione di reindirizzamenti e riscritture per un'applicazione Amplify
Le regole di routing non riscrivono o trasformano la richiesta. Se una richiesta in entrata corrisponde al modello di percorso di una rotta, la richiesta viene indirizzata così com'è alla destinazione della rotta.
Le regole di routing specificate nell'routes
array devono essere conformi alle seguenti regole.
-
È necessario specificare un percorso onnicomprensivo. Un percorso generico ha lo
/*
schema che corrisponde a tutte le richieste in arrivo. -
L'
routes
array può contenere un massimo di 25 elementi. -
È necessario specificare un
Static
percorso o unCompute
percorso. -
Se si specifica un
Static
percorso, la.amplify-hosting/static
directory deve esistere. -
Se si specifica una
Compute
rotta, la.amplify-hosting/compute
directory deve esistere. -
Se si specifica un
ImageOptimization
percorso, è necessario specificare anche unCompute
percorso. Ciò è necessario perché l'ottimizzazione delle immagini non è ancora supportata per applicazioni puramente statiche.
La seguente definizione dell'oggetto illustra la configurazione dell'Route
oggetto.
type Route = { path: string; target: Target; fallback?: Target; }
La tabella seguente descrive le proprietà dell'Route
oggetto.
Chiave | Tipo | Campo obbligatorio | Descrizione |
---|---|---|---|
path |
Stringa |
Sì |
Definisce uno schema che corrisponde ai percorsi delle richieste in entrata (esclusa querystring). La lunghezza massima del percorso è di 255 caratteri. Un percorso deve iniziare con la barra Un percorso può contenere uno qualsiasi dei seguenti caratteri: [A-Z], [a-z], [0-9], [_-.*$/~"'@: +]. Per la corrispondenza dei modelli, sono supportati solo i seguenti caratteri jolly:
|
target |
Target |
Sì |
Un oggetto che definisce l'obiettivo verso cui indirizzare la richiesta corrispondente. Se viene specificata una Se viene specificata una |
riserva |
Target |
No |
Un oggetto che definisce l'obiettivo su cui effettuare il fallback se il target originale restituisce un errore 404. Il |
La seguente definizione dell'oggetto illustra la configurazione dell'oggetto. Target
type Target = { kind: TargetKind; src?: string; cacheControl?: string; }
La tabella seguente descrive le proprietà dell'Target
oggetto.
Chiave | Tipo | Campo obbligatorio | Descrizione |
---|---|---|---|
gentile |
Tipo di bersaglio |
Sì |
E |
src |
Stringa |
Sì per No per altre primitive |
Una stringa che specifica il nome della sottodirectory nel pacchetto di distribuzione che contiene il codice eseguibile della primitiva. Valido e richiesto solo per la primitiva Compute. Il valore deve puntare a una delle risorse di elaborazione presenti nel pacchetto di distribuzione. Attualmente, l'unico valore supportato per questo campo è. |
cacheControl |
Stringa |
No |
Una stringa che specifica il valore dell'intestazione Cache-Control da applicare alla risposta. Valido solo per Static e per le primitive. ImageOptimization Il valore specificato viene sovrascritto dalle intestazioni personalizzate. Per ulteriori informazioni sulle intestazioni dei clienti di Amplify Hosting, consulta. Impostazione di intestazioni personalizzate per un'app Amplify NotaQuesta intestazione Cache-Control viene applicata solo alle risposte riuscite con un codice di stato impostato su 200 (OK). |
La seguente definizione dell'oggetto illustra l'utilizzo dell'enumerazione. TargetKind
enum TargetKind { Static = "Static", Compute = "Compute", ImageOptimization = "ImageOptimization" }
L'elenco seguente specifica i valori validi per l'enum. TargetKind
- Statico
-
Indirizza le richieste alla primitiva degli asset statici.
- Calcolo
-
Indirizza le richieste alla primitiva di calcolo.
- ImageOptimization
-
Indirizza le richieste alla primitiva di ottimizzazione delle immagini.
L'JSONesempio seguente dimostra l'utilizzo dell'routes
attributo con più regole di routing specificate.
"routes": [ { "path": "/_nuxt/image", "target": { "kind": "ImageOptimization", "cacheControl": "public, max-age=3600, immutable" } }, { "path": "/_nuxt/builds/meta/*", "target": { "cacheControl": "public, max-age=31536000, immutable", "kind": "Static" } }, { "path": "/_nuxt/builds/*", "target": { "cacheControl": "public, max-age=1, immutable", "kind": "Static" } }, { "path": "/_nuxt/*", "target": { "cacheControl": "public, max-age=31536000, immutable", "kind": "Static" } }, { "path": "/*.*", "target": { "kind": "Static" }, "fallback": { "kind": "Compute", "src": "default" } }, { "path": "/*", "target": { "kind": "Compute", "src": "default" } } ]
Per ulteriori informazioni sulla specificazione delle regole di routing nel manifesto di distribuzione, vedere Le migliori pratiche per la configurazione delle regole di routing
Utilizzo dell'attributo computeResources
L'computeResources
attributo consente ai framework di fornire metadati sulle risorse di calcolo fornite. A ogni risorsa di elaborazione deve essere associata una route corrispondente.
La seguente definizione dell'oggetto illustra l'utilizzo dell'oggetto. ComputeResource
type ComputeResource = { name: string; runtime: ComputeRuntime; entrypoint: string; }; type ComputeRuntime = 'nodejs16.x' | 'nodejs18.x' | 'nodejs20.x';
La tabella seguente descrive le proprietà dell'ComputeResource
oggetto.
Chiave | Tipo | Campo obbligatorio | Descrizione |
---|---|---|---|
nome |
Stringa |
Sì |
Speciifica il nome della risorsa di calcolo. Il nome deve corrispondere al nome della sottodirectory all'interno di. Per la versione 1 della specifica di distribuzione, l'unico valore valido è |
runtime |
ComputeRuntime |
Sì |
Definisce il runtime per la risorsa di calcolo fornita. I valori validi sono |
punto di ingresso |
Stringa |
Sì |
Speciifica il nome del file iniziale da cui verrà eseguito il codice per la risorsa di calcolo specificata. Il file deve trovarsi all'interno della sottodirectory che rappresenta una risorsa di calcolo. |
Se hai una struttura di directory simile alla seguente.
.amplify-hosting |---compute | |---default | |---index.js
L'computeResource
attributo JSON for the sarà simile al seguente.
"computeResources": [ { "name": "default", "runtime": "nodejs16.x", "entrypoint": "index.js", } ]
Utilizzo dell' imageSettings attributo
L'imageSettings
attributo consente ai framework di personalizzare il comportamento della primitiva di ottimizzazione delle immagini, che fornisce l'ottimizzazione su richiesta delle immagini in fase di esecuzione.
La seguente definizione dell'oggetto dimostra l'utilizzo dell'oggetto. ImageSettings
type ImageSettings = { sizes: number[]; domains: string[]; remotePatterns: RemotePattern[]; formats: ImageFormat[]; minumumCacheTTL: number; dangerouslyAllowSVG: boolean; }; type ImageFormat = 'image/avif' | 'image/webp' | 'image/png' | 'image/jpeg';
La tabella seguente descrive le proprietà dell'ImageSettings
oggetto.
Chiave | Tipo | Campo obbligatorio | Descrizione |
---|---|---|---|
dimensioni |
Numero [] |
Sì |
Una serie di larghezze di immagine supportate. |
domains |
Stringa [] |
Sì |
Una serie di domini esterni consentiti che possono utilizzare l'ottimizzazione delle immagini. Lascia l'array vuoto per consentire solo al dominio di distribuzione di utilizzare l'ottimizzazione delle immagini. |
remotePatterns |
RemotePattern[] |
Sì |
Una serie di pattern esterni consentiti che possono utilizzare l'ottimizzazione delle immagini. Simile ai domini, ma offre un maggiore controllo con le espressioni regolari (regex). |
formati |
ImageFormat[] |
Sì |
Una serie di formati di immagini di output consentiti. |
minimumCacheTTL |
Numero |
Sì |
La durata della cache in secondi per le immagini ottimizzate. |
dangerouslyAllowSVG |
Booleano |
Sì |
Consente l'SVGimmissione dell'immagineURLs. Questa opzione è disattivata per impostazione predefinita per motivi di sicurezza. |
La seguente definizione dell'oggetto illustra l'utilizzo dell'RemotePattern
oggetto.
type RemotePattern = { protocol?: 'http' | 'https'; hostname: string; port?: string; pathname?: string; }
La tabella seguente descrive le proprietà dell'RemotePattern
oggetto.
Chiave | Tipo | Campo obbligatorio | Descrizione |
---|---|---|---|
protocol |
Stringa |
No |
Il protocollo del pattern remoto consentito. I valori validi sono |
hostname |
Stringa |
Sì |
Il nome host del pattern remoto consentito. È possibile specificare un valore letterale o un carattere jolly. Un singolo `*` corrisponde a un singolo sottodominio. Un `**` doppio corrisponde a un numero qualsiasi di sottodomini. Amplify non consente caratteri jolly generici in cui è specificato solo `**`. |
port |
Stringa |
No |
La porta del pattern remoto consentito. |
percorso |
Stringa |
No |
Il nome del percorso del pattern remoto consentito. |
L'esempio seguente dimostra l'imageSettings
attributo.
"imageSettings": { "sizes": [ 100, 200 ], "domains": [ "example.com" ], "remotePatterns": [ { "protocol": "https", "hostname": "example.com", "port": "", "pathname": "/**", } ], "formats": [ "image/webp" ], "minumumCacheTTL": 60, "dangerouslyAllowSVG": false }
Utilizzo dell'attributo framework
Utilizzate l'framework
attributo per specificare i metadati del framework.
La seguente definizione dell'oggetto illustra la configurazione dell'oggetto. FrameworkMetadata
type FrameworkMetadata = { name: string; version: string; }
La tabella seguente descrive le proprietà dell'FrameworkMetadata
oggetto.
Chiave | Tipo | Campo obbligatorio | Descrizione |
---|---|---|---|
nome |
Stringa |
Sì |
Il nome del framework. |
version |
Stringa |
Sì |
La versione del framework. Deve essere una stringa di versioning semantico (semver) valida. |
Le migliori pratiche per la configurazione delle regole di routing
Le regole di routing forniscono un meccanismo per instradare i percorsi delle richieste in entrata verso destinazioni specifiche del pacchetto di distribuzione. In un pacchetto di distribuzione, gli autori del framework possono inviare file nell'output di compilazione che vengono distribuiti a uno dei seguenti obiettivi:
-
Risorse statiche primitive: i file sono contenuti nella directory.
.amplify-hosting/static
-
Primitiva di calcolo: i file sono contenuti nella directory.
.amplify-hosting/compute/default
Gli autori del framework forniscono anche una serie di regole di routing nel file manifest di deploy. Ogni regola dell'array viene confrontata con la richiesta in entrata in ordine di attraversamento sequenziale, finché non si verifica una corrispondenza. Quando esiste una regola di corrispondenza, la richiesta viene indirizzata alla destinazione specificata nella regola di corrispondenza. Facoltativamente, è possibile specificare un obiettivo di riserva per ogni regola. Se la destinazione originale restituisce un errore 404, la richiesta viene indirizzata alla destinazione di fallback.
Le specifiche di distribuzione richiedono che l'ultima regola nell'ordine di attraversamento sia una regola generale. Con il percorso viene specificata una regola generale. /*
Se la richiesta in entrata non corrisponde a nessuna delle rotte precedenti nell'array delle regole di routing, la richiesta viene indirizzata al target della regola generale.
Per SSR framework come Nuxt.js, l'obiettivo della regola generale deve essere la primitiva di calcolo. Questo perché SSR le applicazioni hanno pagine renderizzate lato server con percorsi che non sono prevedibili in fase di compilazione. Ad esempio, se un Nuxt.js l'applicazione ha una pagina in /blog/[slug]
cui [slug]
è presente un parametro di percorso dinamico. L'obiettivo della regola generica è l'unico modo per indirizzare le richieste a queste pagine.
Al contrario, è possibile utilizzare schemi di percorso specifici per indirizzare percorsi noti in fase di compilazione. Ad esempio, Nuxt.js serve risorse statiche dal /_nuxt
percorso. Ciò significa che il /_nuxt/*
percorso può essere mirato da una regola di routing specifica che indirizza le richieste alla primitiva degli asset statici.
Routing delle cartelle pubbliche
La maggior parte dei SSR framework offre la possibilità di fornire risorse statiche mutabili da una cartella. public
I file simili a favicon.ico
e robots.txt
sono in genere conservati all'interno della public
cartella e vengono serviti dalla radice dell'applicazione. URL Ad esempio, il favicon.ico
file viene fornito dahttps://example.com/favicon.ico
. Nota che non esiste uno schema di percorso prevedibile per questi file. Sono quasi interamente dettati dal nome del file. L'unico modo per indirizzare i file all'interno della public
cartella è utilizzare il percorso generico. Tuttavia, l'obiettivo generale della rotta deve essere la primitiva di calcolo.
Consigliamo uno dei seguenti approcci per la gestione della cartella. public
-
Utilizzate un modello di percorso per indirizzare i percorsi di richiesta che contengono estensioni di file. Ad esempio, puoi utilizzarlo
/*.*
per indirizzare tutti i percorsi di richiesta che contengono un'estensione di file.Nota che questo approccio può essere inaffidabile. Ad esempio, se all'interno della
public
cartella sono presenti file senza estensione, non vengono presi di mira da questa regola. Un altro problema da tenere presente con questo approccio è che l'applicazione potrebbe avere pagine con punti nei nomi. Ad esempio, una pagina in/blog/2021/01/01/hello.world
verrà scelta come target dalla/*.*
regola. Questo non è l'ideale poiché la pagina non è una risorsa statica. Tuttavia, puoi aggiungere un obiettivo di fallback a questa regola per garantire che, quando si verifica un errore 404 dalla primitiva statica, la richiesta ritorni alla primitiva di calcolo.{ "path": "/*.*", "target": { "kind": "Static" }, "fallback": { "kind": "Compute", "src": "default" } }
-
Identifica i file nella
public
cartella in fase di compilazione ed emetti una regola di routing per ogni file. Questo approccio non è scalabile poiché esiste un limite di 25 regole imposto dalle specifiche di distribuzione.{ "path": "/favicon.ico", "target": { "kind": "Static" } }, { "path": "/robots.txt", "target": { "kind": "Static" } }
-
Consigliamo agli utenti del framework di archiviare tutte le risorse statiche mutabili all'interno di una sottocartella all'interno della cartella.
public
Nell'esempio seguente, l'utente può memorizzare tutte le risorse statiche mutabili all'interno della cartella.
public/assets
Quindi, è/assets/*
possibile utilizzare una regola di routing con lo schema di percorso per indirizzare tutte le risorse statiche mutabili all'interno della cartella.public/assets
{ "path": "/assets/*", "target": { "kind": "Static" } }
-
Specificare un fallback statico per il percorso generico. Questo approccio presenta degli svantaggi che sono descritti più dettagliatamente nella sezione successiva. Routing fallback generico
Routing fallback generico
Per SSR framework come Nuxt.js, dove viene specificata una route catch-all per la destinazione primitiva di calcolo, gli autori del framework potrebbero prendere in considerazione la possibilità di specificare un fallback statico per il percorso catch-all per risolvere il problema del routing delle cartelle. public
Tuttavia, questo tipo di regola di routing interrompe le pagine 404 renderizzate sul lato server. Ad esempio, se l'utente finale visita una pagina che non esiste, l'applicazione esegue il rendering di una pagina 404 con un codice di stato 404. Tuttavia, se il percorso generico ha un fallback statico, la pagina 404 non viene renderizzata. La richiesta torna invece alla primitiva statica e finisce comunque con un codice di stato 404, ma la pagina 404 non viene renderizzata.
{ "path": "/*", "target": { "kind": "Compute", "src": "default" }, "fallback": { "kind": "Static" } }
Routing del percorso di base
I framework che offrono la possibilità di modificare il percorso di base dell'applicazione dovrebbero anteporre il percorso di base agli asset statici all'interno della directory. .amplify-hosting/static
Ad esempio, se il percorso di base è/folder1/folder2
, lo sarà l'output della build per una risorsa statica chiamata main.css. .amplify-hosting/static/folder1/folder2/main.css
Ciò significa che anche le regole di routing devono essere aggiornate per riflettere il percorso di base. Ad esempio, se il percorso di base è/folder1/folder2
, la regola di routing per le risorse statiche nella public
cartella sarà simile alla seguente.
{ "path": "/folder1/folder2/*.*", "target": { "kind": "Static" } }
Analogamente, anche le route lato server devono avere il percorso di base anteposto ad esse. Ad esempio, se il percorso base è/folder1/folder2
, la regola di routing per il /api
percorso sarà simile alla seguente.
{ "path": "/folder1/folder2/api/*", "target": { "kind": "Compute", "src": "default" } }
Tuttavia, il percorso base non deve essere anteposto al percorso generico. Ad esempio, se il percorso base è/folder1/folder2
, il percorso generale rimarrà come segue.
{ "path": "/*", "target": { "kind": "Compute", "src": "default" } }
Esempi di percorsi Nuxt.js
Di seguito è riportato un deploy-manifest.json
file di esempio per un'applicazione Nuxt che dimostra come specificare le regole di routing.
{ "version": 1, "routes": [ { "path": "/_nuxt/image", "target": { "kind": "ImageOptimization", "cacheControl": "public, max-age=3600, immutable" } }, { "path": "/_nuxt/builds/meta/*", "target": { "cacheControl": "public, max-age=31536000, immutable", "kind": "Static" } }, { "path": "/_nuxt/builds/*", "target": { "cacheControl": "public, max-age=1, immutable", "kind": "Static" } }, { "path": "/_nuxt/*", "target": { "cacheControl": "public, max-age=31536000, immutable", "kind": "Static" } }, { "path": "/*.*", "target": { "kind": "Static" }, "fallback": { "kind": "Compute", "src": "default" } }, { "path": "/*", "target": { "kind": "Compute", "src": "default" } } ], "computeResources": [ { "name": "default", "entrypoint": "server.js", "runtime": "nodejs18.x" } ], "framework": { "name": "nuxt", "version": "3.8.1" } }
Di seguito è riportato un deploy-manifest.json
file di esempio per Nuxt che dimostra come specificare le regole di routing, inclusi i percorsi di base.
{ "version": 1, "routes": [ { "path": "/base-path/_nuxt/image", "target": { "kind": "ImageOptimization", "cacheControl": "public, max-age=3600, immutable" } }, { "path": "/base-path/_nuxt/builds/meta/*", "target": { "cacheControl": "public, max-age=31536000, immutable", "kind": "Static" } }, { "path": "/base-path/_nuxt/builds/*", "target": { "cacheControl": "public, max-age=1, immutable", "kind": "Static" } }, { "path": "/base-path/_nuxt/*", "target": { "cacheControl": "public, max-age=31536000, immutable", "kind": "Static" } }, { "path": "/base-path/*.*", "target": { "kind": "Static" }, "fallback": { "kind": "Compute", "src": "default" } }, { "path": "/*", "target": { "kind": "Compute", "src": "default" } } ], "computeResources": [ { "name": "default", "entrypoint": "server.js", "runtime": "nodejs18.x" } ], "framework": { "name": "nuxt", "version": "3.8.1" } }
Per ulteriori informazioni sull'utilizzo dell'routes
attributo, vedere. Utilizzo dell'attributo routes