Laravel 5.6 — why not control is transferred to the controller?

Once I attach the code of the routes, controller and views. Everything as simple as possible, but apparently I don't understand something.
Task - download the img file, which is in the storage/app/public/uploads

Route::get('/download/{path}', 'BannerController@download')->name('download');

public function index()
 return view('upload')->with(['path' => 'uploads/foo.jpg']);

public function download($path)
 $file = storage_path($path);
 return response()->download($file, 'filename.jpg')->deleteFileAfterSend(true);

<a href="{{route('download', ['path' => $path])}}" style="padding: 10px; border: 1px solid darkblue;">Download</a>

Clicking this link opens the page at 'download/uploads/foo.jpg' where it says "Page not found". Tell me, how am I supposed to do right?
June 3rd 19 at 21:04
2 answers
June 3rd 19 at 21:06
don't understand, it's just sets a limit on the value of the transferred parameter. but he was string, so it will remain, what will change? - nikita.Stracke commented on June 3rd 19 at 21:09
but nothing will change, and do not include. And in General I don't listen. - Penelope91 commented on June 3rd 19 at 21:12
public function boot()
 Route::pattern('path', '/');


So? I hope not. As it will not help - nikita.Stracke commented on June 3rd 19 at 21:15
you are familiar with the concept of "regular expression"? And read again, but not diagonally. - Penelope91 commented on June 3rd 19 at 21:18
familiar but use had just a couple of times in the most simple variations. Now anyway to get into them no time. The documentation studied, sorry that didn't take 100% of the information and it's hard. If you know how to solve my problem, please share solution, leave the rest on my head. - nikita.Stracke commented on June 3rd 19 at 21:21
June 3rd 19 at 21:08
Route::get('view/{slashData?}', 'ExampleController@getData')
 ->where('slashData', '(.*)')

Find more questions by tags Laravel