From ead1018fc513df74434dfb26e70cfc989d0c8d88 Mon Sep 17 00:00:00 2001 From: Jonas Siewertsen Date: Thu, 4 Aug 2022 17:13:58 +0200 Subject: [PATCH 1/2] Cache files with different paths differently --- src/Statamic.php | 3 ++- tests/StatamicTest.php | 11 +++++++++++ 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/src/Statamic.php b/src/Statamic.php index 3316223311..659d2cb55d 100644 --- a/src/Statamic.php +++ b/src/Statamic.php @@ -394,8 +394,9 @@ private static function createVersionedAssetPath($name, $path, $extension) return (string) $path; } - return Cache::rememberForever("statamic-{$extension}-{$name}", function () use ($path, $extension) { + $cachePath = substr($path, -40); + return Cache::rememberForever("statamic-{$extension}-{$name}-{$cachePath}", function () use ($path, $extension) { // In case a file without any version will be passed, // a random version number will be created. if (! Str::contains($path, '?v=')) { diff --git a/tests/StatamicTest.php b/tests/StatamicTest.php index 570c9992a9..860497a7ec 100644 --- a/tests/StatamicTest.php +++ b/tests/StatamicTest.php @@ -243,6 +243,17 @@ public function styles_can_be_passed_with_a_laravel_mix_version() $this->assertEquals($testStyle, $path); } + /** @test */ + public function assets_with_equal_names_will_be_cached_differently() + { + Statamic::style('test-name', __DIR__.'/../resources/css/test-path-1.css'); + Statamic::style('test-name', __DIR__.'/../resources/css/test-path-2.css'); + + $allStyles = Statamic::availableStyles(Request::create('/')); + + $this->assertNotEquals($allStyles['test-name'][0], $allStyles['test-name'][1]); + } + /** * @test * @dataProvider cpAssetUrlProvider From 02e01451430a28a2585e6bdcdbd2ddc71139dfbb Mon Sep 17 00:00:00 2001 From: Jason Varga Date: Thu, 11 Aug 2022 11:10:15 -0400 Subject: [PATCH 2/2] Just md5 the path --- src/Statamic.php | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/src/Statamic.php b/src/Statamic.php index 659d2cb55d..8ecbd57e49 100644 --- a/src/Statamic.php +++ b/src/Statamic.php @@ -394,9 +394,7 @@ private static function createVersionedAssetPath($name, $path, $extension) return (string) $path; } - $cachePath = substr($path, -40); - - return Cache::rememberForever("statamic-{$extension}-{$name}-{$cachePath}", function () use ($path, $extension) { + return Cache::rememberForever("statamic-{$extension}-{$name}-{md5($path)}", function () use ($path, $extension) { // In case a file without any version will be passed, // a random version number will be created. if (! Str::contains($path, '?v=')) {