提问者:小点点

Laravel符号链接和cPanel


在我的Laravel网站上,我使用符号链接来存储和显示存储中的图像。

具有

php artisan storage:link

我已经创建了符号链接,每次我上传一篇新的新闻文章时,图像都会上传到主存储器中,并使用符号链接将其设置到公用文件夹中,并且我会正确显示图像。

到目前为止还不错,但当我创建了一个网站副本时,出现了一个问题。。。

当我使用cPanels文件管理器创建网站副本并移动到新位置时,公用目录中的存储符号链接已成为文件夹,而不是符号链接。之后,当我尝试上传一篇新的新闻文章时,我可以看到它被上传到主存储文件夹中,但不在公共/存储中,因此图像不会显示。这是因为它不再是一个符号链接,但现在它是一个文件夹。

我已经从公共目录中删除了存储文件夹,使用SSH我再次使用了该命令

php artisan storage:link

我创建了一篇新的新闻文章,图像显示正常,但现在所有其他图像都消失了。

是否有任何命令将重新生成路径,以便再次显示所有其他图像?

我用的是拉威尔5.5


共2个答案

匿名用户

  1. 您可以用另一种方法来解决这个问题,创建一个symlinkexample。将php文件放入公用文件夹,并将文件路径运行到浏览器中
  2. 然后将存储文件夹创建到公用文件夹中。文件夹路径将为公用/存储,并链接到您的公用文件夹

symlinkexample.php代码如下:

<?php
    $targetFolder = $_SERVER['DOCUMENT_ROOT'].'/storage/app/public';
    $linkFolder = $_SERVER['DOCUMENT_ROOT'].'/public/storage';
    symlink($targetFolder,$linkFolder);
    echo 'Symlink process successfully completed';
?>

匿名用户

试试这个:

在路由/web.php中添加以下代码:

Route::get('/storage', function(){
    \Artisan::call('storage:link');
    return "Se han vinculado las imágenes";
});