Laravel不提供公共目录中的文件

时间:2020-08-02 08:59:35

标签: php html css laravel

我正在使用最新的laravel 7.x。

问题是:正如标题所述,Laravel为什么不通过公共目录提供服务。 我在storage / app / public / img / Logo_original.png中有一张图片,在storage / app / public / css / style.css

中有一张CSS

当我试图获取以太之css或img时,我从服务器返回404错误。

这些代码存在于app.blade.php中: css:<link rel="stylesheet" href="{{ asset('css/style.css') }}">

如果我使用inspect元素并检查源,那是css目录,并且在style.css文件中,但是它是空的!

img:我已经尝试了很多方法,但最后一种是:

@php
  $url = asset('img/Logo_original.png');
  print('<img src='.$url.'>');
@endphp

我已经看了4个教程和3种Stackoverflow方法,但是不幸的是,没有一个方法可以帮助我解决问题。

请帮助我解决这个难题。

1 个答案:

答案 0 :(得分:1)

Laravel上的官方文档所述,您需要:

  1. 使用public/storage创建从storage/app/publicphp artisan storage:link的符号链接
  2. 使用echo asset('storage/img/Logo_original.png');(在路径中包含storage)创建资产的URL。作为资产助手功能,将创建一个指向公用文件夹的URL。 img不存在,但是在上面的步骤1中,您已经在storage文件夹中创建了一个名为public的符号链接。因此正确的网址为http://localhost:8080/storage/img/Logo_original.png,可以使用上述网址创建
echo asset('storage/img/Logo_original.png');