Fix public media routing for demo storage files

This commit is contained in:
fatihalp 2026-03-28 02:34:47 +03:00
parent f06943ce9d
commit 239fd0d2bf
3 changed files with 27 additions and 1 deletions

View File

@ -0,0 +1,19 @@
<?php
namespace Modules\Site\App\Http\Controllers;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Storage;
use Modules\Site\App\Support\LocalMedia;
use Symfony\Component\HttpFoundation\StreamedResponse;
class PublicMediaController extends Controller
{
public function show(Request $request, string $path): StreamedResponse
{
abort_unless(Storage::disk(LocalMedia::disk())->exists($path), 404);
return Storage::disk(LocalMedia::disk())->serve($request, $path);
}
}

View File

@ -3,6 +3,11 @@
use Illuminate\Support\Facades\Route; use Illuminate\Support\Facades\Route;
use Modules\Site\App\Http\Controllers\HomeController; use Modules\Site\App\Http\Controllers\HomeController;
use Modules\Site\App\Http\Controllers\LanguageController; use Modules\Site\App\Http\Controllers\LanguageController;
use Modules\Site\App\Http\Controllers\PublicMediaController;
Route::get('/storage/{path}', [PublicMediaController::class, 'show'])
->where('path', '.*')
->name('media.legacy');
Route::middleware('web')->group(function () { Route::middleware('web')->group(function () {
Route::get('/', [HomeController::class, 'index'])->name('home'); Route::get('/', [HomeController::class, 'index'])->name('home');

View File

@ -7,6 +7,7 @@ return [
'local' => [ 'local' => [
'driver' => 'local', 'driver' => 'local',
'root' => storage_path('app/private'), 'root' => storage_path('app/private'),
'url' => env('APP_PRIVATE_STORAGE_URL', '/private-storage'),
'serve' => true, 'serve' => true,
'throw' => false, 'throw' => false,
'report' => false, 'report' => false,
@ -15,7 +16,8 @@ return [
'public' => [ 'public' => [
'driver' => 'local', 'driver' => 'local',
'root' => storage_path('app/public'), 'root' => storage_path('app/public'),
'url' => env('APP_PUBLIC_STORAGE_URL', '/storage'), 'url' => env('APP_PUBLIC_STORAGE_URL', '/media'),
'serve' => true,
'visibility' => 'public', 'visibility' => 'public',
'throw' => false, 'throw' => false,
'report' => false, 'report' => false,