有人可以帮助我处理我的问题吗? 我用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。对不起我的英文
答案 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}}