Laravel图像路径无法正常工作

时间:2017-02-09 11:34:42

标签: php laravel-5.3

有人可以帮助我处理我的问题吗? 我用laravel 5.3创建了一个应用程序(我之前没有使用laravel的经验)所以它在我的本地apache上工作正常,但是当我将它上传到共享主机时,我遇到了图像路径的问题。 我的图片通过voyager管理面板上传,并存储在MySite \ storage \ app \ public \ products \ January2017中 这是我从表中获取记录的方法,除了图像路径之外,一切正常

  public function search(Request $req) {

    $q = $req->input('search');

    $error = ['error'=>'По вашему запросу ничего не найдено'];
    if($req->has('q')) {
        //$product = json_decode(Product::search($req->get('q'))->get(), true);
        $res = Product::search($req->get('q'))->first();
        // dd($res->toArray());
        return view('pages.found', [
            'data' => $res->toArray()
        ]);
    }
    else {
        $product = Product::all();
        return view('pages.welcome')->withPosts($product);
    }
}

这就是我展示它的方式。           

图像在db中上传,路径为products / February2017 / Xq6nkdTRAWcgKg07LsI4.png,例如

它适用于安装了composer的本地服务器,在这个托管上我无法安装它,所以我该怎么做才能使它工作?

P.S。对不起我的英文

3 个答案:

答案 0 :(得分:0)

公众无法访问storage文件夹(因为它位于public文件夹之外),它应该保持不变。

您可以将storage/app/public/product文件夹符号链接到public/product,这是您实现目标所需的唯一方法,同时将文件保存到目标位置。

在Mac / * nix上,这可行:ln -s /full/path/to/laravel/storage/app/public/products /full/path/to/laravel/public/products

答案 1 :(得分:0)

你使用

php artisan storage:link

默认情况下,公共磁盘使用本地驱动程序并将这些文件存储在storage / app / public中。要使它们可以从网络访问,您应该创建一个从公共/存储到存储/应用/公共的符号链接。

答案 2 :(得分:0)

使用此命令

public/storage

这会为您创建从storage/app/public/storage/app/public的符号链接,仅此而已。现在http://somedomain.com/storage/image.jpg 中的任何文件都可以通过以下链接访问:

{{1}}