[英]Laravel 5.4 Showing 404 Not Found (Public Storage)
我有一個關於公共存儲和存儲本身的問題
在我完成將文件插入存儲后。 然后在視圖頁面中,我想顯示我存儲到存儲中的文件。 但我有問題我有錯誤。
加載資源失敗:服務器響應狀態為 404(未找到)
圖像存在於公共存儲文件夾中,我運行了 php artisan 存儲鏈接
這是我的代碼,如何將文件插入到存儲中。
$filename = $request->file->getClientOriginalName();
$request->file->storeAs('storage',$filename);
這是我的代碼,如何將圖像顯示到視圖頁面
@foreach($home_slider as $get_data_slider)
@if($get_data_slider->slider_sorting == '1')
<a href="{{$get_data_slider->link}}" target="_blank"><img src="{{ asset('/public/storage/'.$get_data_slider->file.'') }}" class="d-block w-100"></a>
@endif
@endforeach
我發現我無法訪問 localhost:8000/public/storage/1.jpg
但是當我使用 localhost:8000/storage/1.jpg 文件顯示。 當 url 沒有公開時顯示圖像
謝謝..
我必須從 vagrant 框中運行php artisan storage:link
才能使符號鏈接真正生效。
如果你使用 Vagrant, php artisan storage:link
應該在 Vagrant 下運行。 否則,文件夾映射將是錯誤的,這就是您得到 404 的原因之一。因此,首先運行vagrant ssh
,然后找到您的項目文件夾並運行php artisan storage:link
。
當您使用 helper asset()
,您直接位於公共文件夾中。 所以你的 src 應該是
src="{{asset('storage/'.$get_data_slider->file.'')}}".
用戶可以從瀏覽器訪問的所有內容都在 public 文件夾中,因此您不再需要在 url 中放置“public”。 這就是為什么找不到第一個 url (localhost:8000/public/storage/1.jpg) 而第二個 (localhost:8000/storage/1.jpg) 顯示您的圖像的原因。 當您使用第一個時,就像您將另一個名為 public(其中包含存儲文件夾)的文件夾放入您的公用文件夾中。
asset() - 生成應用程序資產的 URL。
url() - 生成命名路由的 URL。
asset() 方法用於包含 CSS/JavaScript/images 文件,您可以在這種情況下使用它
<link href="{{ asset('css/min.css') }}" rel="stylesheet">
<script src="{{ asset('use.typekit.net/zjb5wvv.js') }}"></script>
<img alt="logo" src="{{ asset('images/logo.png') }}">
該文件必須位於公共文件夾中。
在你的情況下:
<a href="{{$get_data_slider->link}}" target="_blank"><img src="{{ asset('storage/'.$get_data_slider->file.'') }}" class="d-block w-100"></a>
PS :無需在 asset() 中顯式添加 public 文件夾;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.