首页 > 解决方案 > asset() 返回 //url... 而不是 http://url

问题描述

资产函数在 rest api 上的文件路径之前不返回 http:// 或 https://。

滑块资源

public function toArray($request)
    {
        return [
            'title'=>$this->title_text,
            'photo'=>asset('assets/images/sliders/'.$this->photo),
        ];
    }

它应该返回类似的路径

"photo": "http://example.com/assets/images/sliders/image_name.jpg"

但它返回如下

"photo": "//example.com/assets/images/sliders/image_name.jpg"

这里是asset()project \vendor\laravel\framework\src\Illuminate\Routing\UrlGenerator

 public function asset($path, $secure = null)
    {
        if ($this->isValidUrl($path)) {
            return $path;
        }
        $root = $this->assetRoot
                    ? $this->assetRoot
                    : $this->formatRoot($this->formatScheme($secure));

        return $this->removeIndex($root).'/'.trim($path, '/');
    }

N:B 最近我将这个项目从 laravel 5.6 升级到 7.0 并开始构建 rest api。但它在 5.6 上工作,我不确定它是否因升级而损坏,因为asset()在项目中的任何地方但在资源类中工作正常。

标签: phplaravel

解决方案


推荐阅读