在Laravel网站上,我正在使用符号链接来存储和显示存储中的图像。
使用
php artisan storage:link
我创建了符号链接,每次上载新的新闻文章时,图像都会上传到主存储中,并使用符号链接将其设置到公用文件夹中,并且正确显示了图像。
到目前为止很好,但是当我创建网站的副本时,出现了问题...
当我使用cPanels File Manager创建网站的副本并移动到新位置时,公共目录中的存储符号链接已成为文件夹,而不是符号链接。 之后,当我尝试上传新的新闻文章时,我可以看到它是在主存储文件夹中上传的,而不是在公共/存储中,因此结果是图像不显示。那是因为它不再是一个符号链接,而现在是一个文件夹。
我已经使用SSH从公用目录中删除了存储文件夹,我再次使用了该命令
php artisan storage:link
并且我创建了新的新闻文章,并且图像可以正确显示,但是现在所有其他图像都消失了。
是否存在任何将重新生成路径的命令,因此所有其他图像将再次显示?
我正在使用Laravel 5.5
答案 0 :(得分:4)
symlinkexample.php的以下代码:
<?php
$targetFolder = $_SERVER['DOCUMENT_ROOT'].'/storage/app/public';
$linkFolder = $_SERVER['DOCUMENT_ROOT'].'/public/storage';
symlink($targetFolder,$linkFolder);
echo 'Symlink process successfully completed';
?>
答案 1 :(得分:0)
尝试一下:
在route / web.php中添加以下代码:
Route::get('/storage', function(){
\Artisan::call('storage:link');
return "Se han vinculado las imágenes";
});