From f0237eb488429d838b28264cffc9517904d47799 Mon Sep 17 00:00:00 2001 From: Aetherinox Date: Mon, 24 Mar 2025 00:01:48 -0700 Subject: [PATCH] feat: add `favicon`; support for binary data --- tvapp2/index.js | 13 +++++++++---- tvapp2/www/favicon.ico | Bin 0 -> 91657 bytes tvapp2/www/index.html | 1 + 3 files changed, 10 insertions(+), 4 deletions(-) create mode 100644 tvapp2/www/favicon.ico diff --git a/tvapp2/index.js b/tvapp2/index.js index afc3f4d2..39f1758b 100755 --- a/tvapp2/index.js +++ b/tvapp2/index.js @@ -1003,8 +1003,6 @@ const server = http.createServer( ( request, response ) => { if ( !err ) { - const html = data.toString(); - /* This allows us to serve all files locally: css, js, etc. the file loaded is dependent on what comes to the right of the period. @@ -1022,10 +1020,17 @@ const server = http.createServer( ( request, response ) => '.css' : 'text/css', '.gz' : 'application/gzip', '.js' : 'text/javascript' - }[loadAsset.substr( fileExt )]; + }[loadAsset.substring( fileExt )]; + + /* + ejs is only for templates; if we want to load an binary data (like images); we must use fs.readFile + */ + + if ( fileMime !== 'text/html' ) + data = fs.readFileSync( './www/' + loadAsset ); response.setHeader( 'Content-type', fileMime ); - response.end( html ); + response.end( data ); Log.debug( `www`, chalk.green( ` [LOAD] ` ), chalk.white( ` → ` ), chalk.grey( `asset:${ loadAsset } mime:${ fileMime }` ) ); } diff --git a/tvapp2/www/favicon.ico b/tvapp2/www/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..0d46efd044f2470059793105c187eb7e7200098b GIT binary patch literal 91657 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 +