我正在尝试从public / assets / img文件夹中获取图像,该图像存在于img文件夹中,该img文件夹位于资产文件夹中,而该资产文件夹也位于public文件夹中。我使用src="{{ asset('/assets/img/example.png') }}"
来获取图像,并且该图像在我的本地主机中可以正常运行,但是当我将代码推送到服务器(服务器是UNIX)时,该代码不起作用,但是当我将其更改为类似于src="{{ asset('../public/assets/img/example.png') }}"
时,在服务器中工作,但不在本地。
因此,我们是否有一种方法可以从这两种图像中获取图像,而无需在本地和服务器中使用不同的URL到asset()中。还是为什么在服务器中我必须在“ /assets/img/example.png”之前添加“ ../public”,甚至不在本地?
首先,在服务器上使用../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() }}
功能的每个代码。