在访问像“/file.png”这样的资源时,网站如何确定完整网址是什么?

时间:2017-11-29 10:41:07

标签: php laravel web

我的代码中有一个看起来像这样的资源:

<img src="upload/file.jpg">

当我打开资源时,它看起来像“myapp.dev/en/upload/file.jpg”

网站如何确定“基本网址”是“myapp.dev/en”而不是“myapp.dev”?该文件可在“myapp.dev/upload/file.jpg”上访问,我可以对其进行硬编码,但我想要“正确”的解决方案。

如果这有助于我使用laravel

2 个答案:

答案 0 :(得分:1)

链接的工作方式与操作系统中的路径相同。以/开头的链接是相对于根目录(您的域名)的,如果您前面没有任何/它相对于当前页面。因此,从myapp.dev/en/upload/file.jpg的关联会产生myapp.dev/en/upload/file.jpg,链接到/upload/file.jpg会指向root,因此您获得myapp.dev/upload/file.jpg

希望这确实解释了如何获得正确的文件链接的基础知识。 Laravel为获取文件提供了一些辅助函数,但我认为在开始使用魔法之前先了解并理解基础知识是很好的

答案 1 :(得分:0)

示例:<img src="{!! asset('upload/file.jpg') !!}">会向您的img返回正确的网址。

如果您使用asset()辅助函数,则网址由app('url')生成,其返回UrlGenerator class

asset()辅助函数如下所示:

function asset($path, $secure = null)
{
    return app('url')->asset($path, $secure);
}

laravel documentation中还有其他辅助函数,请查看灵感