Static File Serving
Penjelasan
Selain melayani JSON API, Actix-web juga bisa menyajikan file statis (misalnya frontend hasil build, gambar, atau dokumen) lewat crate tambahan `actix-files`. Kamu mendaftarkan direktori statis dengan `Files::new("/static", "./public")` yang otomatis memetakan setiap file di folder `./public` ke path `/static/...`. Ini berguna untuk aplikasi kecil yang ingin menyajikan frontend sederhana tanpa server terpisah, meski untuk aplikasi besar biasanya frontend dan backend tetap dipisah (Actix murni jadi API, frontend disajikan lewat CDN/hosting statis lain).
Contoh Konsep
use actix_files::Files;
use actix_web::{App, HttpServer};
#[actix_web::main]
async fn main() -> std::io::Result<()> {
HttpServer::new(|| {
App::new()
.service(Files::new("/static", "./public").show_files_listing())
})
.bind(("127.0.0.1", 8080))?
.run()
.await
}
Praktikum
Lengkapi service agar folder "./public" disajikan lewat path "/static".
Ketik/edit bebas di sini untuk latihan — kode ini tidak dijalankan.
Tips
Tambahkan crate dengan `cargo add actix-files`. Daftarkan route dinamis/API dulu sebelum `Files::new()` di dalam `App`, karena Actix mencocokkan route berurutan dan file server bisa "menangkap" path yang seharusnya ditangani handler lain kalau didaftarkan terlalu awal.