在 Yii2 Advanced 中上传和访问图像的最佳方式是什么?

What is the best way to upload & access images in Yii2 advanced?


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

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

您可以在无 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 文件夹。