Torna al blog

Leggere un sito locale senza avviare un server web

Vuoi guardare un sito statico che hai sottomano. Il riflesso, per chiunque abbia sviluppato, è immediato: python -m http.server, oppure npx serve, e apri il browser. Su un computer è questione di dieci secondi.

Su un iPhone o un iPad quel riflesso non ha più appigli. E la vera domanda diventa: ti serviva davvero un server?

Perché si avvia un server per abitudine

Perché aprire un file direttamente in file:// crea problemi veri in un browser desktop. Le richieste ad altri file sono bloccate dalla politica di origine, i moduli JavaScript rifiutano di caricarsi e alcune API sono disponibili solo in contesto sicuro.

Il server locale non serve quindi a servire i file, che sono già lì. Serve a dare un'origine alla pagina.

Quando il server resta indispensabile

Lo è non appena fai qualcosa di diverso dal leggere:

In tutti questi casi avvia un server, e fallo da una macchina di sviluppo. Nessuna app di lettura lo sostituisce, e questo articolo non lo pretende.

Quando non ti serve

Se il tuo obiettivo è leggere, l'elenco è più corto di quanto si creda. Consultare una documentazione esportata, rileggere un rapporto generato, sfogliare un sito archiviato, verificare un consegnabile per un cliente prima di inoltrarlo: niente di tutto ciò richiede un'origine HTTP.

Serve un'app che risolva correttamente i percorsi relativi ed esegua il CSS e il JavaScript della pagina. È esattamente ciò che fa Pagira, su iPhone e iPad, senza avviare nulla e senza pubblicare nulla.

  1. Metti la cartella del sito in File o in iCloud Drive.
  2. Aprila con Pagira.
  3. Il sito compare con la sua impaginazione e la sua navigazione interna.

Stili e pagine interattive sono supportati, vedi CSS e JavaScript nelle pagine locali.

Cosa guadagni a non pubblicare

C'è una differenza di natura tra leggere un file sul proprio dispositivo e caricarlo su un servizio online per guardarlo. Un consegnabile per un cliente, un mockup non annunciato, una documentazione interna: sono contenuti la cui diffusione non sempre spetta a te decidere. Restare in locale elimina la questione.

E se il sito viene da un generatore

Le esportazioni di Hugo, Jekyll, MkDocs, Docusaurus o un notebook convertito sono cartelle statiche autonome. Si leggono così come sono, senza build e senza server. L'argomento è trattato in dettaglio in leggere documentazione tecnica offline su iPad.

Domande frequenti

I moduli JavaScript funzionano?

Le pagine interattive si comportano come previsto. Detto questo, se la tua pagina dipende da un'API riservata ai contesti sicuri o da un service worker, ti serve un vero server: è un limite del modello, non un'impostazione da trovare.

Posso avviare un server su iOS?

Alcune app lo propongono. Per la semplice lettura aggiunge uno strato il cui unico ruolo è aggirare un problema che non hai.

E se il sito chiama un'API remota?

Gli servirà una connessione, come in un browser. Ciò che è locale è il sito, non i servizi che interroga.

Come apro la cartella?

Con Apri con Pagira da File. Vedi aprire da qualsiasi punto.

Il sito resta consultabile offline?

Sì, è il punto di partenza: i file sono sul dispositivo. Per una cartella su iCloud, scarica una copia offline prima di partire.