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
919

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 @donkarnash Berkenaan 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-ligus sebut 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