Laravel“无法加载资源”

时间:2017-08-07 07:36:29

标签: php css laravel

我有这条路线的刀片:

/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的存储磁盘如下所示:

 '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的其他问题,但找不到错误。)

1 个答案:

答案 0 :(得分:2)

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

公共磁盘

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

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

php artisan storage:link

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

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