From 7364def97969e0fe70818beff40c38465a893936 Mon Sep 17 00:00:00 2001 From: ak Date: Wed, 12 Aug 2026 04:05:25 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20theme('asset',=20path,=20name)=20?= =?UTF-8?q?=E5=BF=BD=E7=95=A5=E6=8C=87=E5=AE=9A=E4=B8=BB=E9=A2=98=E7=9A=84?= =?UTF-8?q?=20bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit theme() 辅助函数 asset 分支只传了路径,丢弃第二个参数(主题名),导致主题管理页所有卡片都显示激活主题的截图。修复透传,并补回归测试 --- app/Support/helpers.php | 2 +- tests/Feature/ThemeTest.php | 7 +++++++ 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/app/Support/helpers.php b/app/Support/helpers.php index a5f2696..553cf94 100644 --- a/app/Support/helpers.php +++ b/app/Support/helpers.php @@ -24,7 +24,7 @@ if (! function_exists('theme')) { $manager = app(ThemeManager::class); return match ($method) { - 'asset' => $manager->assetUrl($args[0] ?? ''), + 'asset' => $manager->assetUrl($args[0] ?? '', $args[1] ?? null), 'var' => $manager->variable($args[0] ?? '', $args[1] ?? null), 'vars' => $manager->variables(), 'name' => $manager->active(), diff --git a/tests/Feature/ThemeTest.php b/tests/Feature/ThemeTest.php index c54991a..be3767e 100644 --- a/tests/Feature/ThemeTest.php +++ b/tests/Feature/ThemeTest.php @@ -59,4 +59,11 @@ class ThemeTest extends TestCase Setting::set('active_theme', 'does-not-exist'); $this->get('/')->assertOk(); } + + public function test_theme_asset_url_respects_explicit_theme(): void + { + // 回归:theme('asset', path, name) 必须用指定主题,而不是激活主题(否则主题管理页所有卡片显示同一张图) + $this->assertStringContainsString('/themes/sablog/assets/screenshot.png', theme('asset', 'screenshot.png', 'sablog')); + $this->assertStringContainsString('/themes/modern/assets/screenshot.png', theme('asset', 'screenshot.png', 'modern')); + } }