簡體   English   中英

Laravel 5.4 顯示 404 Not Found(公共存儲)

[英]Laravel 5.4 Showing 404 Not Found (Public Storage)

我有一個關於公共存儲和存儲本身的問題

在我完成將文件插入存儲后。 然后在視圖頁面中,我想顯示我存儲到存儲中的文件。 但我有問題我有錯誤。

加載資源失敗:服務器響應狀態為 404(未找到)

  • 我已經運行了 php artisan storage:link
  • 圖像存在於公共存儲文件夾中

圖像存在於公共存儲文件夾中,我運行了 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

404 未找到

但是當我使用 localhost:8000/storage/1.jpg 文件顯示。 當 url 沒有公開時顯示圖像

謝謝..

我必須從 vagrant 框中運行php artisan storage:link才能使符號鏈接真正生效。

如果你使用 Vagrant, php artisan storage:link應該在 Vagrant 下運行。 否則,文件夾映射將是錯誤的,這就是您得到 404 的原因之一。因此,首先運行vagrant ssh ,然后找到您的項目文件夾並運行php artisan storage:link

而不是你應該使用的資產:

{{ Storage::url($pr->$get_data_slider->file) }}

有關更多信息,請訪問文件系統 laravel

當您使用 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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM