📜  laravel storage not found - PHP (1)

📅  最后修改于: 2023-12-03 15:02:35.634000             🧑  作者: Mango

Laravel Storage Not Found

如果在使用Laravel时遇到了"Laravel Storage Not Found"错误,那么这篇文章将会为您提供一些解决方案。

确保Storage目录已经配置

在使用Laravel时,为了保护应用程序的敏感数据,这些数据通常会保存在一个相对较安全的位置,也就是storage目录。所以,必须确保storage目录已被正确配置。

可以在config/app.php文件中查找以下行:

'providers' => [

    // ...

    Illuminate\Filesystem\FilesystemServiceProvider::class,

    // ...

],

如果这行没有被添加到providers数组中,就必须添加它。

另外,您需要保证在.env文件中配置好APP_KEY,否则会出现Laravel storage not found的错误消息。

重新链接Storage

第二种可能是您的storage目录没有正确链接到public目录。为了解决这个问题,请使用以下命令重新链接storage:

php artisan storage:link
更改Storage的位置

有时候,您可能需要将存储文件的目录从默认的位置/storage/app/public更改为其他位置。这可以通过在config/filesystems.php文件中进行更改来实现。打开该文件,找到以下行:

'disks' => [

    // ...

    'local' => [
        'driver' => 'local',
        'root' => storage_path('app'),
    ],

    // ...

],

您可以通过更改此行中的'root'路径来更改存储文件的位置。例如,如果您希望将文件保存在'public/files'目录中,则应将此行更改为:

'root' => public_path('files'),
将Storage目录保护起来

最后,我们需要确保storage目录始终受到保护,并且无法通过URL直接访问。这可以通过在public/.htaccess文件中添加以下行来实现:

# Prevent access to the storage directory
RewriteRule ^storage(/.*)?$ - [L,403]

这样做将禁止直接访问storage目录,并返回403状态码。

结论

在使用Laravel时,如果遇到Laravel Storage Not Found的错误,首先请确保storage目录已正确配置,并且已使用php artisan storage:link命令链接到public目录。如果问题仍然存在,请考虑更改存储的位置,并确保storage目录始终受到保护。