Ich habe diese Frage neulich von einem Hörer erhalten. Eine faire Frage, würde ich sagen. Das Wort „Statisch“ in „Static Site Generator“ steht im Widerspruch zum Wort „Dynamisch“. Es scheint anzudeuten, dass die mit einem Static Site Generator (SSG) erstellte Website in Stein gemeißelt ist und erst wieder geändert werden kann, wenn sie zu einem späteren Zeitpunkt erneut ausgeführt wird. Das ist eine etwas unglückliche Implikation, wenn auch völlig verständlich.
„Statische Seiten“ können tatsächlich so dynamisch sein wie jede andere Seite, dank einer Sache¹, die direkt in jede Website integriert und verfügbar ist: JavaScript. JavaScript kann beispielsweise eine API aufrufen und die ansonsten statisch generierte Markierung einer Seite aktualisieren. Denken Sie nur nach. JavaScript. APIs. Markierung… J… A… M… Jamstack!
Ein Teil des Tricks, diese Jamstack-Welt (auch bekannt als statische Seiten, die dynamische Dinge tun) zu verstehen, ist ein Blick darauf, was Netlify anbietet. Netlify bietet buchstäblich *nur* statisches Hosting an. Keine serverseitigen Sprachen (wie Ruby, PHP oder Python), die einzelne Seiten auf Netlify bereitstellen. SSGs und Netlify gehen also Hand in Hand. Aber gehen wir das Schritt für Schritt durch:
- Netlify führt Ihren Build-Prozess für Sie durch. Der mit sehr hoher Wahrscheinlichkeit einen SSG beinhaltet. Der Sinn dahinter ist größtenteils, dass Sie Ihre erstellten Website-Dateien aus Ihrem Versionskontrollsystem heraushalten, was sonst ein verschwenderisches Durcheinander wäre.
- Netlify verarbeitet Ihre Formulare. Kein Bedarf, einen ständig laufenden Server nur für dieses dynamische Feature zu betreiben.
- Netlify bietet Authentifizierung. Das stimmt, Leser, Authentifizierung ist ein erstklassiger Bürger der Plattform.
- Netlify führt Ihren serverseitigen Code in Form von Cloud Functions aus. Statisches Hosting bedeutet nicht, dass Sie keine serverseitigen Dinge tun können. Es bedeutet, dass Sie serverseitige Dinge mit modernen, günstigen, sicheren, fokussierten, schnellen und leistungsstarken Cloud Functions tun.
- Netlify kann Seiten bei Bedarf erstellen. Das bedeutet, Sie müssen nicht *alle* Ihre Seiten vorab erstellen, wenn Sie das nicht möchten.
Das ist nur ein Teil des Funktionsumfangs. Hier ist ein lustiger Blogbeitrag von vor einiger Zeit mit einigen der Lieblingsfunktionen des Personals, von denen viele nicht in der obigen Liste aufgeführt sind. Jamstack bedeutet buchstäblich, dass tatsächlich dynamische Dinge mit einer statischen Website geschehen.
Ich hoffe, das beantwortet die Frage für diesen speziellen Leser und jeden anderen mit der gleichen Verwirrung. SSGs *können* vollständig statische Websites mit null dynamischen Daten und ohne spezielle Anmeldeerfahrung erstellen. Sie können aber auch genauso dynamisch sein wie jede andere Website, nur von einer solideren, statischen Grundlage aus aufgebaut.
- Nun, sagen wir zwei Dinge. Dynamische Dinge können auch über Edge-Handler geschehen, ohne dass Client-seitiges JavaScript benötigt wird.
Das ist ein großartiger Beitrag, aber mit einem solchen Fokus darauf, wie statische Seiten auch dynamisch sein können – ich glaube, Sie haben vergessen zu erklären, was sie überhaupt statisch macht. Was ist der Unterschied zwischen statisch und nicht-statisch?
Sie haben Recht. Es ist ein Missverständnis. SSGs eignen sich jedoch hervorragend für Websites, die sich nicht ständig aktualisieren müssen. Andernfalls könnte die Erfahrung schlechter sein, und nicht alle SSGs bieten eine Vorschau, die für Mitwirkende hilfreich ist.
Ich bin ein großer Fan von SSGs. Ich benutze sie ständig, aber es gibt einige Vorbehalte. Außerdem erfordern viele wichtige Funktionen wie Suche, Formulare und Kommentare die Integration von Drittanbietern und zusätzlichen Code.
Ich denke, die von Ihnen erwähnten Missverständnisse könnten damit zusammenhängen. Im Vergleich zu WordPress und anderen Lösungen erscheinen SSGs vielleicht als spartanisch. Ich bevorzuge diesen Ansatz, aber nicht jeder verfügt über die notwendigen Fähigkeiten, um ihn zu warten, auch wenn Netlify großartig ist.
Oh je. Dieses „statisch“ und JAM erinnert mich an die Zeit vor PHP. Als wir nur HTML und kleines JS hatten. Die Leute haben vergessen, warum der dynamische Teil überhaupt erfunden wurde. Das ist wie in der Mode, die 90er sind das neue 2021.
Viel Glück, Kinder.
Das verwirrt mich tatsächlich noch mehr. Wenn das der Fall ist, was ist der Unterschied zwischen einer normalen SPA und einer statischen Website? Warum deuten alle darauf hin, dass sie unterschiedlich sind?