【问题标题】:Laravel "Failed to load resource"Laravel“加载资源失败”
【发布时间】:2023-03-31 03:39:01
【问题描述】:

我在这条路线上有刀片:

/resources/views/cms/public/views/projects/showproject.blade.php

而渲染图片的代码是这样的:

@if (Storage::disk('projects')->has($project->slug))
    <p class="lead"><img src="{{ asset('/storage/projects/'.$project->slug.'/home.png') }}" width="50%" >Home</p>
@else
    <p class="lead"><img src="/assets/img/projects/{{$project->slug}}/home.png" width="50%">Home</p>
@endif

称为项目的存储磁盘如下所示:

 'projects' => [
        'driver' => 'local',
        'root' => storage_path('app/public/projects'),
        'url' => env('APP_URL').'/storage',
        'visibility' => 'public',
  ],

错误是这样的:

header.png Failed to load resource: the server responded with a status of 500 (Internal Server Error)

我认为问题出在视图上的代码中,我还阅读了也许我需要使用符号链接,没有它就不可能吗?

任何帮助将不胜感激,如果有任何问题请提出。

谢谢。 (我之前查了其他关于stackoverflow的问题,没有发现错误)。

【问题讨论】:

  • 尝试创建符号链接,您的 storage 文件夹中的所有内容,以及从您的 public 文件夹中加载的所有内容都需要进行符号链接。

标签: php css laravel


【解决方案1】:

来自文档https://laravel.com/docs/5.4/filesystem

公共磁盘

公共磁盘用于存放可公开访问的文件。默认情况下,公共磁盘使用本地驱动程序并将这些文件存储在 storage/app/public 中。要使它们可以从 Web 访问,您应该创建一个从 public/storage 到 storage/app/public 的符号链接。此约定会将您可公开访问的文件保存在一个目录中,当使用 Envoyer 等零停机时间部署系统时,该目录可以轻松地跨部署共享。

要创建符号链接,您可以使用 storage:link Artisan 命令:

php artisan storage:link

当然,一旦存储了文件并创建了符号链接,您就可以使用资产助手创建文件的 URL:

echo asset('storage/file.txt');

【讨论】:

  • 您好 Jorn,首先感谢您的快速回答。当我发布问题时,我也在阅读文档。成功了,只需php artisan storage:link 然后&lt;img src="{{ asset('/projects/'.$project-&gt;slug.'/home.png') }}" width="50%" &gt;Home 非常感谢!让我问你一件事,如果我不知道哪个是扩展名,我应该怎么做?无论如何谢谢;)
  • 我会将您的图像名称、类型、路径存储在您的数据库中。如果您的设计中有图像并且会在那里停留很长时间,只需对它们进行硬编码。如果您有要上传图像或经常更改的页面,请将它们存储起来,以便您可以检索位置,并从数据库中输入
猜你喜欢
  • 1970-01-01
  • 2019-07-16
  • 2018-06-04
  • 1970-01-01
  • 2012-07-24
  • 2018-01-15
  • 2013-02-26
  • 2019-05-28
  • 2016-06-24
相关资源
最近更新 更多