group(function () { Route::get('/documents/{document}/preview', [DocumentController::class, 'preview']) ->name('documents.preview'); Route::get('/documents/{document}/download', [DocumentController::class, 'download']) ->name('documents.download'); }); // 提供 markdown 目录中 media 文件的访问(需要认证) // 路径格式: /markdown/{path}/media/{filename} // 其中 path 可以是: 2025/12/04/{uuid} 或 {uuid} Route::middleware(['auth'])->get('/markdown/{path}/media/{filename}', function ($path, $filename) { // 构建完整路径 $fullPath = $path . '/media/' . $filename; if (!Storage::disk('markdown')->exists($fullPath)) { abort(404); } $file = Storage::disk('markdown')->get($fullPath); $mimeType = Storage::disk('markdown')->mimeType($fullPath); return response($file, 200)->header('Content-Type', $mimeType); })->where('path', '.*')->where('filename', '[^/]+')->name('markdown.media');