Servire i beni statici come brotli a tempo di costruzione

Performancekamo-marketing
Shipped
20 agosto 2026 alle ore 21:34 UTC
Author
Kamo
Commit
977c49a

Il pezzo segnalato è reagito-dom, e l'ho controllato correttamente prima di concludere qualsiasi cosa: è la costruzione di produzione (no dev markers, e i ganci di profilazione `injectProfilingHooks` e `markComponentRenderStarted` sono entrambi assenti — il lone `unstable Profiling` hit è un nome di esportazione), è 19.2.3 deduped con esattamente una copia su tutti i pezzi, e `reactProductionProfiling` è spento. Ecco. non è un bug bloat da risolvere, e un framework spedirà sempre il codice una determinata pagina fa non eseguire, quindi l'audit stesso non può essere cancellato. Ciò che potrebbe essere risolto è come viene consegnato. `/ next/static/* stava uscendo gzip mentre ogni cliente moderno ha chiesto brotli: > brotli 56,967 (-18%) tutti JS + CSS gzip 675.8 KB -> brotli 576.6 KB (-99.2 KB) Brotli di qualità 11 è esattamente l'impostazione che costa 565 ms per richiesta su documento HTML, ed è gratuito qui per il motivo opposto: questi file sono contenuto-hashed e servito `immutabile`, quindi un dato URL non può mai cambiare i suoi byte. Comprimerli una volta al tempo di costruzione costa alcuni secondi di costruzione e niente affatto per richiesta. Il documento mantiene la qualità 5 perché porta un nonce per richiesta e deve essere compresso dal vivo — i due casi vogliono veramente risposte diverse. L'involucro serve il sibling `.br` precostruito quando uno esiste e il cliente accetta br, e restituisce falso per qualsiasi cosa non è certo, quindi una signorina costa una stat() e passa al prossimo intatto. Verificato piuttosto che assunto, dal momento che questo tocca il file che serve: · brotli servito quando accettato, con l'intestazione immutabile conservata · un cliente solo gzip ottiene ancora un lavoro 200 attraverso il prossimo · un mancante .br 404s normalmente · traversale codificato — `%2e%2e` a percorsi .js che puntano a server.js e server-nonce.js, che esiste realmente al di fuori della radice statica — è respinto senza fonte trapelata. La pianura `../` non è un test valido: il curl lo normalizza prima dell'invio della richiesta.

All changes

Come quello che vedi la spedizione?

Ognuno di questi aggiornamenti atterra automaticamente nello spazio di lavoro. Inizia gratis e guardalo crescere settimana dopo settimana.

Inizia gratis per sempreVisualizza il prezzo