Я создаю пакет с использованием Laravel 5.4. Мне нужно включить некоторые ресурсы (js, CSS и изображения) в шаблон лезвия. Как я могу этого добиться?
Я пробовал asset (), но он не работает.
Вот структура папок моего пакета:
root
--package
-- vendor_name
-- package_name
-- src
-- assets
-- js
-- login.js
--css
-- login.css
-- views
-- login.blade.php
Возможно ли это без публикации в общей папке?
Спасибо
Ответ 1 · рейтинг 2 · Mohammed Zaki
В Laravel 5.4 вы можете использовать функцию смешивания, гораздо лучше, если вы хотите использовать версии
<script src="{{ mix('js/login.js') }}"></script>
см. Компиляция активов (Laravel Mix)
https://laravel.com/docs/5.4/mix
mix.js(['resources/assets/js/app.js'], 'public/js')
.sass('resources/assets/sass/app.scss', 'public/css')
.styles([
'node_modules/animate.css/animate.css',
'node_modules/icheck/skins/flat/green.css',
'node_modules/flatpickr/dist/flatpickr.css',
'node_modules/gentelella/vendors/switchery/dist/switchery.min.css',
'node_modules/ion-rangeslider/css/ion.rangeSlider.css',
'node_modules/ion-rangeslider/css/ion.rangeSlider.skinFlat.css',
'node_modules/gentelella/vendors/google-code-prettify/bin/prettify.min.css',
//bootstrap modal carousel.js
//'node_module/bootstrap-modal-carousel/dist/css/bootstrap-modal-carousel.css',
'node_modules/gentelella/build/css/custom.css',
'resources/assets/css/custom.css'
], 'public/css/custom.css')
.copy('node_modules/gentelella/vendors/switchery/dist/switchery.min.js', 'public/js/switchery.min.js')
.copy('node_modules/gentelella/vendors/switchery/dist/switchery.min.css', 'public/css/switchery.min.css')
.copy('resources/assets/images', 'public/images')
.copy('node_modules/ion-rangeslider/img', 'public/img')
.copy('node_modules/icheck/skins/flat/green.png', 'public/css')
.copy('node_modules/icheck/skins/flat/[email protected]', 'public/css').version();
Ответ 2 · Angus Simons
Вы можете создать в своем config/filesystem.php новый диск, указывающий на эту папку.
'package' => [
'driver' => 'package',
'root' => base_path('package'),
],
в лезвии
{{ Storage::disk('package')->url('vendor_name/package_name/src/assets/js/login.js') }}
настраиваемый каталог для представлений
чтобы отредактировать это, вы должны войти в config/view.php и добавить свои пути base_path('package/vendor_name/package_name/src/views') для каждого пакета.
'paths' => [
resource_path('views'),
base_path('package/vendor_name/package_name/src/views'),
],