图像不会渲染,路径基于存储路径

时间:2016-06-21 09:14:31

标签: javascript jquery image laravel laravel-5.2

我的控制器上有这个功能

public function get_images(Request $request){
    $images = inventory_images::where('item_id',$request->id)->get();
    $path = Storage::disk('local')->getDriver()->getAdapter()->getPathPrefix();

    return response()->json([ 'success' => true, 'images' => $images, 'id' => $request->id, 'path' => $path ]);
}

所以'$ path'包含存储路径,我的图像存储在'storage'文件夹中,'$ images'包含文件名,然后在我的前端(渲染图像)

$.each(e.images,function(index,value){
    $("#notification_dialog #gallery-items-container").append('<a href="'+e.path+value.image_name+'"> <figure> <img src="'+e.path+value.image_name+'"> </figure></a>');
});

在图像'src'我有这条路径

  

C:\ wamp \ www \ Clinic and Inventory   系统\存储\应用\公共\ items_gallery \ 10014589_974440645904700_5867266076580720168_n.jpg

在控制台中,我有这个错误

  

:1不允许加载本地资源:   文件:/// C:/wamp/www/Clinic%20and%20Inventory%20System/storage/app/public/items_gallery/10014589_974440645904700_5867266076580720168_n.jpg

图像没有渲染,如果我将路径粘贴到浏览器,我可以看到图像,这意味着路径是正确的,只是图像没有渲染,任何想法,请帮忙吗?

2 个答案:

答案 0 :(得分:-1)

将数据属性放在包含图像的标记上:

data-image_path="{{ asset('uploads/*name of model this is being associated with/original/') }}"

资产指向项目的公共目录。

然后从控制器中检索图像名称并将其附加到该路径。

答案 1 :(得分:-1)

我在某个地方找到了解决方案,

Route::get('/images/{image}', function($image = null)

{
    $path = storage_path().'/app/public/items_gallery/' . $image;
    if (file_exists($path)) { 
        return Response::download($path);
    }
});

现在好了。