attributes->set('seo_default_locale', $defaultLocale); // 로케일 설정 $originalLocale = app()->getLocale(); app()->setLocale($locale); try { $html = $this->renderer->render($request); } finally { // 로케일 복원 app()->setLocale($originalLocale); } if ($html === null) { continue; } // 레이아웃명 가져오기 (SeoRenderer가 request attribute로 저장) $layoutName = $request->attributes->get('seo_layout_name', ''); $this->cacheManager->putWithLayout($url, $locale, $html, $layoutName); $success = true; Log::debug('[SEO] Cache regenerated', [ 'url' => $url, 'locale' => $locale, 'layout' => $layoutName, ]); } catch (\Throwable $e) { Log::warning('[SEO] Cache regeneration failed', [ 'url' => $url, 'locale' => $locale, 'error' => $e->getMessage(), ]); } } return $success; } }