我正在尝试从public / assets / img文件夹中获取图像,该图像存在于img文件夹中,该img文件夹位于资产文件夹中,而该资产文件夹也位于public文件夹中。我使用src="{{ asset('/assets/img/example.png') }}"
来获取图像,并且该图像在我的本地主机中可以正常工作,但是当我将代码推送到服务器(服务器是UNIX)时,代码无法正常工作,但是当我将其更改为{{ 1}}可以在服务器中使用,但不在本地。
因此,我们是否有一种方法可以从这两种图像中获取图像,而无需对本地和服务器使用不同的URL到asset()中。还是为什么在服务器中我必须在“ /assets/img/example.png”之前添加“ ../public”,甚至不在本地?
答案 0 :(得分:1)
首先,在服务器上使用../public
是不正确的。
我怀疑是因为您使用"/assets/img/example.png"
而不是"assets/img/example.png"
无论哪种方法,如果问题仍然存在,您可以覆盖服务器上的公用路径,以避免更新使用{{ asset() }}
函数的每个代码。
将此应用程序绑定代码添加到位于您的Laravel项目中的AppServiceProvider.php中
<laravel-project-name>/app/Providers/AppServiceProvider.php
/**
* Register any application services.
*
* @return void
*/
public function register()
{
$this->app->bind('path.public', function() {
return realpath(base_path().'../public');
});
}
通过这种方式,您不必更改在服务器上使用{{ asset() }}
函数的每个代码。