Astro membuat situs statis secara bawaan: setiap halaman menjadi file HTML di dist/, dengan hanya JavaScript yang diperlukan island Anda. Hanya folder itu yang diperlukan Lobsite. Jalankan npm run build, lalu npx lobsite di proyek, dan situs aktif di alamat *.lobsite.app dengan HTTPS. Anda juga dapat meletakkan dist/ di kotak di atas.
Cara kerjanya
- Build situs dengan
npm run build(yaituastro build). Halaman, gambar, dan skrip masuk kedist/. - Jalankan
npx lobsitedi proyek. Perintah ini melakukan deploydist/, bukanpublic/, yang sudah disalin Astro ke build. Deploy pertama tidak memerlukan akun dan bertahan 6 jam. - Simpan dengan tautan klaim, di akun gratis. Folder disimpan di
lobsite.toml, sehingga build berikutnya di-deploy dengannpx lobsiteyang sama.
Pengaturan yang perlu diperiksa di astro.config.mjs
import { defineConfig } from "astro/config";
export default defineConfig({
site: "https://my-site.lobsite.app",
trailingSlash: "ignore",
});
siteadalah alamat lengkap Anda. Astro memakainya untuk URL kanonis,Astro.site, dan sitemap dari@astrojs/sitemap. Setel ke alamat*.lobsite.appAnda, dan ubah saat pindah ke domain sendiri.basetetap tidak disetel: situs disajikan dari tingkat atas alamatnya, bukan subfolder seperti situs proyek GitHub Pages.build.formatdapat tetap pada bawaannya.about/index.htmlterbuka di/about/, dan fileabout.htmlterbuka di/about.
Yang berfungsi, dan yang memerlukan server
Semua yang dirender Astro saat build berfungsi: koleksi konten, Markdown dan MDX, gambar astro:assets (dioptimalkan saat build), serta island dari React, Vue, Svelte, atau Solid, yang berjalan di browser. Apa pun yang berjalan per permintaan tidak berfungsi: halaman dengan export const prerender = false, output: "server", Astro Actions, dan endpoint API yang tidak di-prerender. Semua itu memerlukan adapter server, dan Lobsite hanya menyajikan file. Untuk formulir kontak, arahkan ke /_lobsite/forms/contact, bukan Astro Action; lihat formulir.
File disimpan berdasarkan hash-nya. Deploy ulang situs yang tidak berubah mengunggah 0 byte.
Pratinjau sebelum tayang. Rollback dengan satu klik, termasuk pengalihan.
Setiap situs mendapat alamat *.lobsite.app dengan HTTPS sejak deploy pertama.
Arahkan formulir ke /_lobsite/forms/contact. Termasuk penyaringan spam.
Pengalihan, header, dan formulir ada di lobsite.toml dan ikut bersama setiap deploy.
Deploy tanpa akun aktif selama 6 jam. Tautan klaim menyimpannya, gratis.
Perbandingan host Astro
| Lobsite | Netlify | Vercel | GitHub Pages | |
|---|---|---|---|---|
| Situs Astro statis | Ya | Ya | Ya | Ya, dengan GitHub Action Astro |
| Render server (adapter) | Tidak | Ya | Ya | Tidak |
| Build di server | Tidak: Anda deploy dist/ |
Ya | Ya | Di GitHub Actions |
| Akun sebelum deploy pertama | Tidak: aktif 6 jam, lalu simpan gratis | Ya | Ya | Ya, dan repositori |
| Formulir tanpa backend | Ya, setelah situs ada di akun | Ya | Tidak | Tidak |
| Domain kustom | Ya, gratis | Ya | Ya | Ya |
Jika sebagian situs Anda dirender saat diminta, pilih host dengan adapter Astro. Jika situsnya statis, yang merupakan bawaan Astro, Lobsite melakukan deploy dalam hitungan detik dari komputer, CI, atau agen AI Anda, dan hanya file yang diubah build yang diunggah.
Pertanyaan umum
Apakah saya perlu adapter untuk meng-host Astro di Lobsite?
Tidak. Adapter untuk render server. Situs Astro statis, yang merupakan bawaan, tidak memerlukan adapter: deploy folder dist/.
Mengapa npx lobsite melakukan deploy dist/ dan bukan public/?
Di proyek Astro, public/ berisi file yang disalin build apa adanya, seperti favicon.svg. Situs hasil build adalah dist/. Lobsite melihat astro di package.json dan melewati public/ untuk Anda.
Bisakah saya menambahkan halaman 404 kustom ke situs Astro?
Ya. Buat src/pages/404.astro; Astro membuatnya sebagai 404.html, dan Lobsite menyajikannya dengan status 404 untuk alamat yang tidak ada.
Apakah pengoptimalan gambar Astro berfungsi?
Ya. astro:assets mengubah ukuran dan mengonversi gambar selama astro build, sehingga file yang dioptimalkan sudah ada di dist/ saat Anda deploy. Hanya layanan gambar sesuai permintaan yang berjalan per permintaan yang memerlukan server.