🍱 Añade gestión de recursos estáticos de PageTop

This commit is contained in:
Manuel Cillero 2025-07-28 18:33:50 +02:00
parent 0f9daa7403
commit 7d7920237f
6 changed files with 39 additions and 9 deletions

View file

@ -1,7 +1,7 @@
use crate::core::action::add_action;
use crate::core::extension::ExtensionRef;
use crate::core::theme::all::THEMES;
use crate::{/*global, include_files, include_files_service, */ service, trace};
use crate::{global, include_files, include_files_service, service, trace};
use parking_lot::RwLock;
@ -125,13 +125,13 @@ pub fn initialize_extensions() {
// CONFIGURA LOS SERVICIOS *************************************************************************
//include_files!(assets);
include_files!(assets);
pub fn configure_services(scfg: &mut service::web::ServiceConfig) {
for extension in ENABLED_EXTENSIONS.read().iter() {
extension.configure_service(scfg);
}
/*include_files_service!(
include_files_service!(
scfg, assets => "/", [&global::SETTINGS.dev.pagetop_project_dir, "static"]
);*/
);
}

View file

@ -12,6 +12,9 @@ include_config!(SETTINGS: Settings => [
"app.language" => "en-US",
"app.startup_banner" => "Slant",
// [dev]
"dev.pagetop_project_dir" => "",
// [log]
"log.enabled" => true,
"log.tracing" => "Info",
@ -27,10 +30,11 @@ include_config!(SETTINGS: Settings => [
]);
#[derive(Debug, Deserialize)]
/// Ajustes para las secciones globales [`[app]`](App), [`[log]`](Log) y [`[server]`](Server) de
/// [`SETTINGS`].
/// Ajustes para las secciones globales [`[app]`](App), [`[dev]`](Dev), [`[log]`](Log) y
/// [`[server]`](Server) de [`SETTINGS`].
pub struct Settings {
pub app: App,
pub dev: Dev,
pub log: Log,
pub server: Server,
}
@ -54,6 +58,16 @@ pub struct App {
pub run_mode: String,
}
#[derive(Debug, Deserialize)]
/// Sección `[Dev]` de la configuración. Forma parte de [`Settings`].
pub struct Dev {
/// Los archivos estáticos requeridos por `PageTop` se integran por defecto en el binario
/// ejecutable. Sin embargo, durante el desarrollo puede resultar útil servirlos desde su propio
/// directorio para evitar recompilar cada vez que se modifican. En ese caso, este ajuste debe
/// indicar la ruta absoluta al directorio raíz del proyecto.
pub pagetop_project_dir: String,
}
#[derive(Debug, Deserialize)]
/// Sección `[log]` de la configuración. Forma parte de [`Settings`].
pub struct Log {

View file

@ -9,6 +9,9 @@ pub use actix_web::dev::ServiceResponse as Response;
pub use actix_web::{cookie, http, rt, web};
pub use actix_web::{App, Error, HttpMessage, HttpRequest, HttpResponse, HttpServer};
pub use actix_web_files::Files as ActixFiles;
pub use actix_web_static_files::ResourceFiles;
#[doc(hidden)]
pub use actix_web::test;