【问题标题】:What is the best way to upload & access images in Yii2 advanced?在 Yii2 Advanced 中上传和访问图片的最佳方式是什么?
【发布时间】:2020-04-05 09:32:25
【问题描述】:


我是 Yii2 的新手,我有以下问题:使用高级模板在 Yii2 中上传和访问图像的最佳方式是什么?
假设我有 common\models\User 具有 avatar 属性的模型,我想从两个环境上传和访问此图像:后端和前端。那么最好的方法是什么?
重要提示:在视图中访问此图片我可能不知道图片是从哪个环境上传的(由管理员或自定义用户)。

【问题讨论】:

    标签: yii2 yii2-advanced-app


    【解决方案1】:

    为静态资源创建一个单独的文件夹

    您可以在无 cookie 的子域 static.mysite.com 中提供所有静态文件,该子域将指向项目根目录中的 /static 文件夹。在您的 common/config/main 文件中为其创建别名:例如,@static@staticPath,通过代码使用它。

    当您从后端或前端保存图像时,您使用别名,例如

    Image->saveAs(Yii::getAlias('@staticPath/img/users/') . $user->avatar)
    

    显示图像时,请使用别名。

    Html::img(
      Yii::getAlias('@static/img/users/') . $user->avatar
    )
    

    您可以更进一步,创建直接指向imageimg/users 文件夹的别名,或者将所有图像存储在一起并取消img/users 文件夹。

    【讨论】:

    • 谢谢!用于静态文件(图像)服务的子域对我来说是最好的解决方案。
    猜你喜欢
    • 2012-02-13
    • 1970-01-01
    • 2010-09-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-09-28
    • 1970-01-01
    • 2021-05-20
    相关资源
    最近更新 更多