【发布时间】:2020-04-05 09:32:25
【问题描述】:
我是 Yii2 的新手,我有以下问题:使用高级模板在 Yii2 中上传和访问图像的最佳方式是什么?
假设我有 common\models\User 具有 avatar 属性的模型,我想从两个环境上传和访问此图像:后端和前端。那么最好的方法是什么?
重要提示:在视图中访问此图片我可能不知道图片是从哪个环境上传的(由管理员或自定义用户)。
【问题讨论】:
我是 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
)
您可以更进一步,创建直接指向image 或img/users 文件夹的别名,或者将所有图像存储在一起并取消img/users 文件夹。
【讨论】: