Yii2 怎样定义一个url别名指向工程下的upload目录

发布于 2022-09-02 20:16:16 字数 683 浏览 23 评论 0

大家好,向大家请教个问题,为了这个问题我查阅了官方文档没有找到办法,只能来这里向大家求助了。
我的项目用的框架是Yii2的高级应用模板,目前有个上传图片到服务器的需求,由于上传的图片 backend 应用需要用到,frontend 应用也需要用到,所以我打算把图片上传到 和backend、frontend同级 的upload目录下.
可是在显示图片的时候,我不知道该怎么拿到upload目录的url了!
我目前是使用的比较笨的办法是:

    /**
     * 获取完整的商品图片地址
     * @param string $imageName
     * @return string
     */
    public static function toProductImage($imageName) {
        $baseUrl = Yii::getAlias('@web') . '/../../upload';
        if (empty($imageName)) {
            return $baseUrl.'/image/product/no_pic.jpg';
        }
        return $baseUrl.'/image/product/'.$imageName;
    }

想请教大家是否还有其他更好的办法,比如自己定义一个别名之类的方法,如果有的话,又该怎么做?谢谢!!!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

染柒℉ 2022-09-09 20:16:16

提供一种解决方式:

  • 解析一个单独的域名,专门用于图片解析地址:如img.sf.com,该域名解析到upload目录,这样代码可以改为

    define('STATIC_HOST','http://img.sf.com/');
    /**
     * 获取完整的商品图片地址
     * @param string $imageName
     * @return string
     */
    public static function toProductImage($imageName) {
        if (empty($imageName)) {
            return STATIC_HOST.'/image/product/no_pic.jpg';
        }
        return STATIC_HOST.'/image/product/'.$imageName;
    }

这种情况,还可以对图片域名单独进行CDN加速

金兰素衣 2022-09-09 20:16:16

@app的上一级目录便是upload的同级目录。

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文