Wdrażanie statycznie renderowanych witryn internetowych Next.js w Azure Static Web Apps
Z tego samouczka dowiesz się, jak wdrożyć Next.js wygenerowaną statyczną witrynę internetową w Azure Static Web Apps. Aby uzyskać więcej informacji na temat Next.js specyfiki, zobacz readme szablonu początkowego.
Wymagania wstępne
- Konto platformy Azure z aktywną subskrypcją. Utwórz bezpłatne konto.
- Konto usługi GitHub. Utwórz bezpłatne konto.
- Node.js zainstalowany.
1. Konfigurowanie aplikacji Next.js
Zamiast używać interfejsu wiersza polecenia Next.js do tworzenia aplikacji, możesz użyć repozytorium początkowego. Repozytorium początkowe zawiera istniejącą aplikację Next.js, która obsługuje trasy dynamiczne.
Aby rozpocząć, utwórz nowe repozytorium w ramach konta usługi GitHub z repozytorium szablonów.
Przejdź do strony https://github.com/staticwebdev/nextjs-starter/generate
Nadaj repozytorium nazwę nextjs-starter
Następnie sklonuj nowe repozytorium na maszynę. Pamiętaj, aby zastąpić ciąg
<YOUR_GITHUB_ACCOUNT_NAME>
nazwą konta.git clone http://github.com/<YOUR_GITHUB_ACCOUNT_NAME>/nextjs-starter
Przejdź do nowo sklonowanej aplikacji Next.js.
cd nextjs-starter
Instalowanie zależności.
npm install
Rozpocznij Next.js aplikację w programowania.
npm run dev
Przejdź do strony, aby
http://localhost:3000
otworzyć aplikację, w której powinna zostać otwarta następująca witryna internetowa w preferowanej przeglądarce:
Po wybraniu struktury lub biblioteki zostanie wyświetlona strona szczegółów dotycząca wybranego elementu:
2. Tworzenie aplikacji statycznej
W poniższych krokach pokazano, jak połączyć aplikację z Azure Static Web Apps. Na platformie Azure możesz wdrożyć aplikację w środowisku produkcyjnym.
Przejdź do witryny Azure Portal.
Wybierz pozycję Utwórz zasób.
Wyszukaj Static Web Apps.
Wybierz pozycję Statyczna aplikacja internetowa.
Wybierz przycisk Utwórz.
Na karcie Podstawy wprowadź następujące wartości.
Właściwość Wartość Subskrypcja Nazwa subskrypcji platformy Azure. Grupa zasobów my-nextjs-group Nazwa my-nextjs-app Typ planu Bezpłatna Region dla interfejsu API Azure Functions i środowisk przejściowych Wybierz region najbliżej Ciebie. Element źródłowy GitHub Wybierz pozycję Zaloguj się przy użyciu usługi GitHub i uwierzytelnij się w usłudze GitHub, jeśli zostanie wyświetlony monit.
Wprowadź następujące wartości usługi GitHub.
Właściwość Wartość Organizacja Wybierz odpowiednią organizację usługi GitHub. Repozytorium Wybierz pozycję nextjs-starter. Gałąź Wybierz pozycję main. W sekcji Szczegóły kompilacji wybierz pozycję Niestandardowe w ustawieniach wstępnych kompilacji. Dodaj następujące wartości jako dla konfiguracji kompilacji.
Właściwość Wartość Lokalizacja aplikacji Wprowadź / w polu . Lokalizacja interfejsu API Pozostaw to pole puste. Lokalizacja wyjściowa Wprowadź wartość w polu .
3. Przeglądanie i tworzenie
Wybierz pozycję Przejrzyj i utwórz , aby sprawdzić, czy szczegóły są poprawne.
Wybierz pozycję Utwórz, aby rozpocząć tworzenie statycznej aplikacji internetowej App Service i aprowizować GitHub Actions na potrzeby wdrożenia.
Po zakończeniu wdrażania wybierz pozycję Przejdź do zasobu.
W oknie Przegląd wybierz link adres URL , aby otworzyć wdrożona aplikację.
Jeśli witryna internetowa nie zostanie załadowana natychmiast, kompilacja jest nadal uruchomiona. Aby sprawdzić stan przepływu pracy Akcje, przejdź do pulpitu nawigacyjnego Akcje dla repozytorium:
https://github.com/<YOUR_GITHUB_USERNAME>/nextjs-starter/actions
Po zakończeniu przepływu pracy możesz odświeżyć przeglądarkę, aby wyświetlić aplikację internetową.
Teraz wszelkie zmiany wprowadzone w main
gałęzi rozpoczynają nową kompilację i wdrażanie witryny internetowej.
4. Synchronizowanie zmian
Po utworzeniu aplikacji Azure Static Web Apps utworzyć plik GitHub Actions w repozytorium. Zsynchronizuj z serwerem, ściągając najnowszą wersję do repozytorium lokalnego.
Wróć do terminalu i uruchom następujące polecenie git pull origin main
.
Konfigurowanie renderowania statycznego
Domyślnie aplikacja jest traktowana jako aplikacja renderowana hybrydowo Next.js, ale aby nadal używać jej jako generatora lokacji statycznej, należy zaktualizować zadanie wdrożenia.
Otwórz repozytorium w Visual Studio Code.
Przejdź do pliku GitHub Actions, który Azure Static Web Apps dodany do repozytorium pod adresem
.github/workflows/azure-static-web-apps-<your site ID>.yml
Zaktualizuj zadanie kompilacji i wdrażania , aby mieć zmienną środowiskową
IS_STATIC_EXPORT
ustawioną natrue
:- name: Build And Deploy id: swa uses: azure/static-web-apps-deploy@latest with: azure_static_web_apps_api_token: ${{ secrets.AZURE_STATIC_WEB_APPS_TOKEN }} repo_token: ${{ secrets.GITHUB_TOKEN }} # Used for GitHub integrations (i.e. PR comments) action: "upload" app_location: "/" # App source code path api_location: "" # Api source code path - optional output_location: "" # Built app content directory - optional env: # Add environment variables here IS_STATIC_EXPORT: true
Zatwierdź zmiany w usłudze Git i wypchnij je do usługi GitHub.
git commit -am "Configuring static site generation" && git push
Po zakończeniu kompilacji witryna zostanie statycznie renderowana.
Czyszczenie zasobów
Jeśli nie zamierzasz nadal korzystać z tej aplikacji, możesz usunąć wystąpienie Azure Static Web Apps, wykonując następujące kroki.
- Otwórz witrynę Azure Portal.
- Wyszukaj ciąg my-nextjs-group na górnym pasku wyszukiwania.
- Wybierz nazwę grupy.
- Wybierz pozycję Usuń.
- Wybierz pozycję Tak , aby potwierdzić akcję usuwania.