Cara laravel agar gambar ditaruh diluar public_html

Jika gambar ditaruh di luar direktori public_html, maka gambar tidak dapat diakses langsung dari web browser, karena file tersebut tidak dapat diakses melalui URL publik.

Namun, Anda masih dapat menampilkan gambar tersebut pada aplikasi Laravel dengan menggunakan fasilitas storage yang disediakan oleh Laravel. Berikut adalah langkah-langkah yang dapat dilakukan:

  1. Pindahkan gambar ke direktori storage pada proyek Laravel Anda. Direktori storage terletak di luar public_html.
  2. Buat symlink atau symbolic link dari direktori public_html ke direktori storage menggunakan command-line. Contohnya, jika direktori public_html Anda berada di /home/user/public_html dan direktori storage Anda berada di /home/user/storage, maka perintah yang harus dilakukan adalah sebagai berikut:
    ln -s /home/user/storage/app/public /home/user/public_html/storage
  3. Perintah di atas akan membuat symlink dari direktori /home/user/storage/app/public ke direktori /home/user/public_html/storage.
    1. Ubah konfigurasi file system pada proyek Laravel Anda. Buka file config/filesystems.php dan ubah nilai root pada driver local menjadi direktori storage yang baru saja Anda buat.
    2. Gunakan fungsi asset() pada kode Anda untuk menampilkan gambar tersebut. Fungsi asset() akan menghasilkan URL publik untuk file yang terdapat di direktori public.

    Contoh penggunaan fungsi asset() untuk menampilkan gambar yang disimpan di direktori storage:

    <img src=”{{ asset(‘storage/nama-file-gambar.jpg’) }}” alt=”Gambar”>

  4. Dengan menggunakan langkah-langkah di atas, gambar yang disimpan di luar direktori public_html dapat ditampilkan pada aplikasi Laravel Anda.