fix: improve redirect map file discovery
- Fix fallback logic (empty object is truthy) - Try multiple paths for Docker and local dev - Add debug logging for file discovery Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
+29
-11
@@ -74,20 +74,38 @@ function mergeAliases(...maps) {
|
|||||||
return merged;
|
return merged;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Parse redirect maps from package root (one level up from _data)
|
// Parse redirect maps from /app/pkg (Docker) or parent directory (local dev)
|
||||||
|
// In Docker: eleventy-site is at /app/pkg/eleventy-site, maps are at /app/pkg/
|
||||||
|
// In local dev: maps might be at ../
|
||||||
const pkgRoot = resolve(__dirname, "../..");
|
const pkgRoot = resolve(__dirname, "../..");
|
||||||
|
|
||||||
// Try multiple possible locations
|
// Helper to find first existing file
|
||||||
const mapLocations = [
|
function findFile(candidates) {
|
||||||
resolve(pkgRoot, "redirects.map.rmendes"),
|
for (const path of candidates) {
|
||||||
resolve(pkgRoot, "old-blog-redirects.map.rmendes"),
|
if (existsSync(path)) {
|
||||||
// Fallback to template files if .rmendes versions don't exist
|
console.log(`[urlAliases] Found: ${path}`);
|
||||||
resolve(pkgRoot, "redirects.map"),
|
return path;
|
||||||
resolve(pkgRoot, "old-blog-redirects.map"),
|
}
|
||||||
];
|
}
|
||||||
|
console.log(`[urlAliases] No file found in: ${candidates.join(", ")}`);
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
const microblogAliases = parseRedirectMap(mapLocations[0]) || parseRedirectMap(mapLocations[2]);
|
// Try multiple possible locations for each map type
|
||||||
const knownAliases = parseRedirectMap(mapLocations[1]) || parseRedirectMap(mapLocations[3]);
|
const microblogMapPath = findFile([
|
||||||
|
resolve(pkgRoot, "redirects.map"),
|
||||||
|
resolve(pkgRoot, "redirects.map.rmendes"),
|
||||||
|
resolve(__dirname, "../../redirects.map"),
|
||||||
|
]);
|
||||||
|
|
||||||
|
const knownMapPath = findFile([
|
||||||
|
resolve(pkgRoot, "old-blog-redirects.map"),
|
||||||
|
resolve(pkgRoot, "old-blog-redirects.map.rmendes"),
|
||||||
|
resolve(__dirname, "../../old-blog-redirects.map"),
|
||||||
|
]);
|
||||||
|
|
||||||
|
const microblogAliases = microblogMapPath ? parseRedirectMap(microblogMapPath) : {};
|
||||||
|
const knownAliases = knownMapPath ? parseRedirectMap(knownMapPath) : {};
|
||||||
|
|
||||||
const allAliases = mergeAliases(microblogAliases, knownAliases);
|
const allAliases = mergeAliases(microblogAliases, knownAliases);
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user