Laravel 5.8资产URL在本地主机和服务器中无法正常工作

问题描述 投票:0回答:1

我正在尝试从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”,甚至不在本地?

php laravel-5.8
1个回答
0
投票

首先,在服务器上使用../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() }}功能的每个代码。

© www.soinside.com 2019 - 2024. All rights reserved.