Я пытаюсь отобразить изображение в своем приложении Laravel. Изображение поступает с другого диска, который является общим ресурсом Samba. Я следовал инструкциям по настройке из Laravel Doc, вот моя настройка:
файловые системы.php
'shop_storage' => [
'driver' => 'local',
'root' => env('SHOP_STORAGE_PATH', base_path('shop_storage')),
'dir' => [
'public' => 0777,
'private' => 0777,
]
],
Мой общий ресурс samba монтируется в корневую папку /shop_storage внутри моего приложения Laravel с помощью следующей команды: sudo mount.cifs //PATH_TO_FILE_SHARE/ARMMAG ./shop_storage -o credentials=$HOME/.smbcredentials,rw,file_mode=0777,dir_mode=0777,mfsymlinks
Я правильно вижу все файлы, когда открываю папку. Затем я добавил символическую ссылку с /public/storage
на /shop_storage
с помощью следующей команды: sudo ln -s /shop_storage /public/storage
(используя полный путь, начинающийся с /home, удаленный здесь для конфиденциальности) Когда я открываю /public/storage
, я правильно вижу символическую ссылку, указывающую на общий ресурс samba. Если я нажму, чтобы открыть его, я увижу все файлы. Файл, который я ищу, существует.
Проблема в том, что когда я пытаюсь отобразить его на своей веб-странице, запрос возвращает 404. Вот некоторые из вещей, которые я пробовал:
<img src="{{\Storage::disk('shop_storage')->url('products/16/MAZJKj59EY0XQ57oKIibKr33eZ5dsqAPx44MCHHJ.png')}}">
<img src="http://localhost:8000/shop_storage/products/16/MAZJKj59EY0XQ57oKIibKr33eZ5dsqAPx44MCHHJ.png">
<img src="{{asset('products/16/MAZJKj59EY0XQ57oKIibKr33eZ5dsqAPx44MCHHJ.png')}}">
<img src="{{asset('storage/products/16/MAZJKj59EY0XQ57oKIibKr33eZ5dsqAPx44MCHHJ.png')}}">
Что я делаю не так?
Изменить После некоторых попыток/ошибок мне удалось получить другой ответ со следующим синтаксисом: <img src="{{asset('storage/shop_storage/products/16/MAZJKj59EY0XQ57oKIibKr33eZ5dsqAPx44MCHHJ.png')}}">
Теперь я получаю следующую ошибку
You don't have permission to access /storage/shop_storage/products/16/MAZJKj59EY0XQ57oKIibKr33eZ5dsqAPx44MCHHJ.png on this server.
Мое разрешение установлено на 777, что может быть причиной?
Remember, if you are using the local driver, all files that should be publicly accessible should be placed in the storage/app/public directory. Furthermore, you should create a symbolic link at public/storage which points to the storage/app/public directory.
- person floGalen   schedule 14.09.2020{{ HTML::image('img/stuvi-logo.png', 'alt text', array('class' => 'css-class')) }}
видно здесь: stackoverflow.com/questions/29858097/laravel-blade- html-изображение - person floGalen   schedule 14.09.2020