我已经声明了一个指向如下文件夹的路径:
$path = realpath(public_path('uploads'));
这给了我这个值:/var/www/mywebsite/public/uploads
现在,我想把它变成一个绝对的URL,像这样:http://www.mywebsite.com/uploads
以下是我所做的:
dd(asset($path)); // Wrong: http://www.mywebsite.com/var/www/mywebsite/public/uploads
dd(url($path); // Same.
dd(asset('uploads')); // Right, but I only want to use $path
有没有一种预先构建的方法可以在Laravel 5中实现这一点?
您几乎达到asset($path)
。
只需将其修改为asset('uploads')
,即可解析为http://www.mywebsite.com/uploads
。
资产URL帮助程序生成Laravel应用程序公用文件夹的URL。然后你只需添加你想从那里转到的文件夹。
您的$path
是相对于带有public_path('uploads')
的public
文件夹,因此,'uploads'
本身指向绝对路径。只需添加主机部分即可。例如:
$inPublic = 'uploads';
$localPath = realpath(public_path($inPublic));
// then, either
$url = url("/" . trim($inPublic, "/''"));
// or
$publicPath = realpath(public_path());
$relativePart = str_replace($publicPath, '', $localPath);
$url = url("/" . trim($relativePart, "/''"));