Oui. J'ai dû modifier quelque peu le code source.
Dans un premier temps je cherche juste à m'assurer que le serveur affiche une page Web avec du CSS dedans.
Je me base sur le livre "Rust Web Programming 2nd edition" (MAXWELL FLITTON), et aussi quelques exemples trouvés dans les docs Rust.
Je pense que c'est le mix des deux sources qui m'a conduit à mettre en place le serveur avec actix-bab version 1.0.9 !! Je l'ai mis à jour du coup pour 4.0.1.
Se faisant, apparemment, la mise en place est drastiquement différente et il a fallu que j'adapte mon code source pour que l'application se compile au minimum.
-- j'ai jamais réussi à "downgrader" de 4.0.1 à 1.0.9 d'ailleurs --
Dans mon main() j'ai
1 2 3 4 5
| let serveur=HttpServer::new
(
||
App::new().service(get_index)
); |
...et évidemment un peu plus loin
serveur.bind("192.168.0.4:4040").expect("error binding server to address").run().await;
J'ai réussi à compiler mon application en faisant aussi des changements dans le "module" où se trouvent les fonctions qui sont censées devenir des "services"
functions_web_related
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
| #[get("/")]
async fn get_index() -> HttpResponse
{
let mut htmldata = feedme("./www/html/index.html");
let cssdata = feedme ("./www/css/index.css");
htmldata = htmldata.replace("{{BASE_CSS}}",&cssdata);
HttpResponse::Ok().content_type("text/html").body(htmldata)
}
pub fn feedme(file_path: &str) -> String
{
let datas = fs::read_to_string(file_path);
if datas.is_err()
{
error!("{}",datas.as_ref().unwrap_err());
String::from(datas.unwrap_err().to_string())
}
else
{
datas.unwrap()
}
} |
De ce que je comprends, j'ai pas encore été loin: les deux fichiers index.html et index.css sont bien injectés et affichés dans le navigateur.
Là où je coince c'est que l'image n'est pas affichée (avec un 404).
J'ai mis cette image (en modifiant le chemin dans le .css) à la racine du projet, dans tous les répertoires possibles et imaginables, rien n'y fait.
Partager