Study
Actix

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".

Editor Latihan

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.