Powrót do bloga

Czytanie lokalnej strony bez stawiania serwera WWW

Chcesz obejrzeć stronę statyczną, którą masz pod ręką. Odruch każdego, kto kiedykolwiek programował, jest natychmiastowy: python -m http.server albo npx serve, i otwierasz przeglądarkę. Na komputerze to kwestia dziesięciu sekund.

Na iPhonie czy iPadzie ten odruch nie ma się o co oprzeć. A prawdziwe pytanie brzmi: czy naprawdę potrzebowałeś serwera?

Dlaczego domyślnie stawiamy serwer

Bo otwarcie pliku wprost przez file:// sprawia realne kłopoty w przeglądarce na komputerze. Żądania do innych plików blokuje polityka pochodzenia, moduły JavaScript odmawiają wczytania, a niektóre API są dostępne wyłącznie w kontekście bezpiecznym.

Serwer lokalny nie służy więc do serwowania plików, które i tak już tam są. Służy do nadania stronie pochodzenia.

Kiedy serwer pozostaje niezbędny

Jest niezbędny, gdy robisz coś innego niż czytanie:

We wszystkich tych przypadkach postaw serwer i zrób to z maszyny deweloperskiej. Żadna aplikacja do czytania tego nie zastąpi, a ten artykuł tego nie twierdzi.

Kiedy nie jest ci potrzebny

Jeśli twoim celem jest czytanie, lista jest krótsza, niż się wydaje. Przejrzenie wyeksportowanej dokumentacji, ponowna lektura wygenerowanego raportu, przeglądanie zarchiwizowanej strony, sprawdzenie materiału dla klienta przed wysłaniem: nic z tego nie wymaga pochodzenia HTTP.

Potrzebna jest aplikacja, która poprawnie rozwiązuje ścieżki względne i wykonuje CSS oraz JavaScript strony. Dokładnie to robi Pagira, na iPhonie i iPadzie, bez uruchamiania i bez publikowania czegokolwiek.

  1. Umieść folder strony w Plikach albo w iCloud Drive.
  2. Otwórz go w Pagirze.
  3. Strona wyświetla się z układem i nawigacją wewnętrzną.

Style i strony interaktywne są obsługiwane, zobacz CSS i JavaScript w stronach lokalnych.

Co zyskujesz, nie publikując

Istnieje różnica natury między czytaniem pliku na własnym urządzeniu a wysłaniem go do usługi online, żeby na niego spojrzeć. Materiał dla klienta, niezapowiedziana makieta, dokumentacja wewnętrzna: to treści, o których rozpowszechnianiu nie zawsze masz prawo decydować. Pozostanie lokalnie znosi to pytanie.

A jeśli strona pochodzi z generatora

Eksporty z Hugo, Jekylla, MkDocs, Docusaurusa albo przekonwertowanego notatnika to samodzielne foldery statyczne. Czyta się je takimi, jakie są, bez budowania i bez serwera. Temat omawiamy szczegółowo w czytaniu dokumentacji technicznej offline na iPadzie.

Najczęstsze pytania

Czy moduły JavaScript działają?

Strony interaktywne zachowują się zgodnie z oczekiwaniami. Jeśli jednak twoja strona zależy od API zastrzeżonego dla kontekstów bezpiecznych albo od service workera, potrzebujesz prawdziwego serwera: to ograniczenie modelu, a nie ustawienie do znalezienia.

Czy mogę uruchomić serwer na iOS?

Niektóre aplikacje to oferują. Przy zwykłym czytaniu dokłada to warstwę, której jedyną rolą jest obejście problemu, którego nie masz.

A jeśli strona woła zdalne API?

Będzie potrzebowała połączenia, tak jak w przeglądarce. Lokalna jest strona, a nie usługi, które odpytuje.

Jak otworzyć folder?

Poleceniem Otwórz w Pagirze z Plików. Zobacz otwieranie zewsząd.

Czy strona pozostaje dostępna offline?

Tak, to punkt wyjścia: pliki są na urządzeniu. Przy folderze w iCloud pobierz kopię offline przed wyjazdem.