const fs = require('fs'); let basePathRaw = process.env.VITE_BASEPATH || ''; // If env not provided, try to detect a in the // built client's index.html (if present). This helps when the // client has been built with a base like '/ketr.ketran' but the // server was started without VITE_BASEPATH set. if (!basePathRaw) { try { const indexPath = 'client/build/index.html'; if (fs.existsSync(indexPath)) { const content = fs.readFileSync(indexPath, 'utf8'); const m = content.match(/]*href=["']([^"']+)["']/i); if (m && m[1]) { // Strip leading/trailing slashes for normalization below basePathRaw = m[1].replace(/^\/+/, '').replace(/\/+$/, ''); // If base was just '/', treat as empty if (basePathRaw === '') basePathRaw = ''; console.log(`Detected client build base href '${m[1]}' and using VITE_BASEPATH='${basePathRaw}'`); } } } catch (err) { // ignore and fall back to default } } let basePath = '/' + (basePathRaw || '').replace(/^\/+/, '').replace(/\/+$/, '') + '/'; if (basePath === '//') basePath = '/'; console.log(`Using basepath ${basePath}`); module.exports = basePath;