diff --git a/generateSite.js b/generateSite.js index e9d3fcc..ec6ced0 100644 --- a/generateSite.js +++ b/generateSite.js @@ -148,12 +148,26 @@ async function serveStaticSite(port = 3000) { if (url.pathname.startsWith('/images/')) { // Serve directly from images folder filePath = url.pathname.slice(1); // Remove leading slash + console.log(`Request for image: ${filePath}`); + console.log(`Parameters: quality=${quality}, width=${width}`); // If quality parameter is present, serve a resized version if (quality && width && (filePath.endsWith('.jpg') || filePath.endsWith('.jpeg') || filePath.endsWith('.png'))) { try { const Sharp = (await import('sharp')).default; - const image = await Sharp(filePath) + + // Get original image info + const originalImage = await Sharp(filePath); + const originalMetadata = await originalImage.metadata(); + console.log('Original image metadata:', { + width: originalMetadata.width, + height: originalMetadata.height, + size: originalMetadata.size, + format: originalMetadata.format + }); + + // Process the image + const processedImage = await Sharp(filePath) .resize({ width: parseInt(width), height: parseInt(width), @@ -162,19 +176,36 @@ async function serveStaticSite(port = 3000) { .jpeg({ quality: parseInt(quality), progressive: true - }) - .toBuffer(); + }); + + // Get processed image info + const processedMetadata = await processedImage.metadata(); + console.log('Processed image metadata:', { + width: processedMetadata.width, + height: processedMetadata.height, + format: processedMetadata.format + }); + + // Convert to buffer and get size + const buffer = await processedImage.toBuffer(); + console.log('Processed image buffer size:', buffer.length); res.writeHead(200, { 'Content-Type': 'image/jpeg', - 'Cache-Control': 'public, max-age=31536000' + 'Cache-Control': 'public, max-age=31536000', + 'Content-Length': buffer.length }); - res.end(image); + res.end(buffer); return; } catch (error) { console.error('Error processing image:', error); // Fall through to serve original image } + } else { + // Log info for original image request + console.log('Serving original image'); + const stats = await fs.stat(filePath); + console.log('Original file size:', stats.size); } } else { // Serve from public folder