php Laravel 9在某些情况下未显示的图像

uplii1fm  于 2023-08-02  发布在  PHP
关注(0)|答案(1)|浏览(109)

我在Laravel 9应用程序中显示图像时遇到问题。
设置如下:
此行存储用户的个人资料图片:
第一个月
剖面现场数据示例:'profilepics/jeG2zk5yfKIGhRx9KKHm9somelongname.png'
下面的代码在我的视图中显示图片。

<img
    class="w-48 mr-6 mb-6"
    src="{{$tprofile->profilepic ? asset('storage/'.$tprofile->profilepic) : asset('images/no-image.png')}}"
    alt=""
/>

字符串
我已经在应用程序的文件夹上运行了'php artisan storage:link'
安装程序在我的计算机上运行良好,但当我上传:

**1)**现有的(从我的PC上传的)配置文件图片会按需要显示在我的视图中。
**2)**如果我更新个人资料图片,它不会在我的视图中显示新图片,使用以下代码:

<img
    class="w-48 mr-6 mb-6"
    src="{{$tprofile->profilepic ? asset('storage/'.$tprofile->profilepic) : asset('images/no-image.png')}}"
    alt=""
/>


将路径更改为此也不起作用:
<?php $imageSrc = storage_path('app/public/' . $tprofile->profilepic); ?>

**3)**如果我使用下面的代码生成包含图片的pdf,它会显示更新后的图片,这意味着更新成功。

@if ($tprofile->profilepic)
    <?php $fullpath = storage_path('app/public/' . $tprofile->profilepic); ?>
    <img 
        class="w-48 mr-6 mb-6 mt-6"
        src="data:image/png;base64,
        <?php echo base64_encode(file_get_contents($fullpath)); ?>"
        width="150px"
    />
@endif


请帮帮我
我期望图像显示在托管的应用程序中,就像在我的PC上发生的那样,或者至少根本不显示,但相反,它们在某些情况下显示。

ut6juiuv

ut6juiuv1#

我终于找到了解决办法:
这是有效的:
我的应用程序在子域中。
已从“public_html”文件夹中删除“storage”
在我的路由文件web.php中添加了这样的路由(注意绝对路径)。

Route::get('/create-symlink', function () {
    symlink('/home/myusername/domains/mysub.domain.com/myappfolder/storage/app/public', '/home/myusername/domains/mysub.domain.com/public_html/storage');
    echo "Symlink Created. Thanks";
});

字符串
然后我去了mysub.domain.com/create-symlink。
就是这样!

相关问题