Menggunakan aset bilah Laravel 8 untuk memaparkan imej tetapi memuatkan daripada subfolder sumber
P粉428986744
P粉428986744 2023-11-09 12:47:02
0
1
725

Saya agak baru dengan Laravel, jadi harap bersabar.

Saya menyalin rangka kerja yang saya bangunkan dalam Node/React ke dalam Laravel. Pada masa ini saya sedang mengubahsuai seni bina utama dan sedang mengerjakan halaman induk bilah.

Matlamat 1:

Saya mahu menggunakan blade {{ asset() }} helper untuk memuatkan imej dalam halaman templat. Masalahnya ialah saya ingin memuatkan imej daripada subfolder yang terletak di dalam folder sumber:

/resources/app_files_layout

Saya tahu saya boleh melakukan ini dengan mengalihkan folder ke direktori awam, tetapi bukan itu yang saya mahukan. Saya juga berhasrat untuk mendalami pembelajaran dan pemahaman saya tentang rangka kerja Laravel dan cuba mengekalkan kesetiaan seni bina kepada rangka kerja saya pada bahasa lain.

Matlamat 2:

Selepas saya berjaya memuatkan imej daripada /resources/app_files_layout melalui pembantu {{ asset() }} dalam Blade, saya ingin menggunakan alias laluan dalam kod sumber. contoh: Saya mahu ia dipaparkan: http://localhost/images/image-name.jpg dan bukannya http://localhost/app_files_layout/image-name.jpg dalam HTML output dalam penyemak imbas dan jangan sekali-kali memaparkannya kepada pengguna Fail terletak dalam folder app_files_layout.

Adakah perkara yang saya mahu lakukan boleh dilakukan dalam Laravel?

Senario terburuk:

Jika Laravel tidak mempunyai seni bina yang diperlukan untuk melakukan perkara yang saya mahu, saya boleh menyediakan laluan yang memaparkan imej dalam folder /resources/app_files_layout. Iaitu: apabila saya melawati http://localhost/images/image-name.jpg pada penyemak imbas saya, imej yang terletak di /resources/app_files_layout/image-name.jpg harus dimuatkan.

Saya cuba mengikuti cadangan stackoverflow ini: https://stackoverflow.com/a/38736973/2510785 Walau bagaimanapun, ia mengembalikan saya ralat seperti ini:

The requested resource /files-layout-test/backend-layout-header-tb02-03.jpg was not found on this server.

Terima kasih terlebih dahulu!

P粉428986744
P粉428986744

membalas semua (1)
P粉928591383

Saya berjaya melakukan ini. Semua kredit diberikan kepada@donkarnashBerkenaan soalan ini, saya menyiarkan senario kes terburuk untuk mencipta alias penghalaan untuknya:Laravel 8 – Mencipta alias penghalaan untuk folder imej dalam direktori awam

Saya menggunakan kaedah symlink, hampir serupa dengan apa yang@sergey-ligussebut dalam komen.

1 – Edit fail laravel configfilesystems.php: Pada mulanya ia kelihatan seperti ini:

links' => [ public_path('storage') => storage_path('app/public'), ],

Selepas mengedit, ia kelihatan seperti ini:

'links' => [ public_path('storage') => storage_path('app/public'), public_path('files-layout') => resource_path('app_files_layout'), ],

2 - Kemudian, dalam terminal arahan, saya melaksanakan arahan berikut:

php artisan storage:link

3 - Akhirnya, saya menjalankan pelayan dan mengujinya. Saya bukan sahaja boleh mengakses fail dalam penyemak imbas melalui http://localhost:8000/files-layout/backend-layout-header-tb02-03.jpg, tetapi saya masih boleh menggunakan laravel assetblade helper.

Fail bilah:

{{ asset('/files-layout/backend-layout-header-tb02-03.jpg') }}
    Muat turun terkini
    Lagi>
    kesan web
    Kod sumber laman web
    Bahan laman web
    Templat hujung hadapan
    Tentang kita Penafian Sitemap
    Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!