2017-02-09 3 views
0

Я хотел бы использовать http://materializecss.com/ на Laravel 5.4 (скомпилирован с webpack).Ошибка jQuery при загрузке материализуется с помощью webpack Laravel 5.4

window.$ = window.jQuery = require('jquery'); 

require('materialize-css'); 
// or 
// require('materialize-css/dist/js/materialize.js'); 
// but same issue 

$(document).ready(function(){ 
    $('.materialboxed').materialbox(); 
    $('.modal').modal(); 
    $('.parallax').parallax(); 
}); 

Это мой код, но ошибка:

Uncaught TypeError: $(...).materialbox is not a function

Он работает с этим:

<script src="https://code.jquery.com/jquery-3.1.1.min.js"></script> 
<script src="{{ asset('js/materialize.min.js') }}"></script> 
<script> 
    $(document).ready(function(){ 
     $('.materialboxed').materialbox(); 
     $('.modal').modal(); 
     $('.parallax').parallax(); 
    }); 
</script> 

Но если я ставлю jquery document ready в app.js, он не работает :

<script src="https://code.jquery.com/jquery-3.1.1.min.js"></script> 
<script src="{{ asset('js/materialize.min.js') }}"></script> 
<script src="{{ mix('js/app.js') }}"></script> 

приложение:

$(document).ready(function(){ 
    $('.materialboxed').materialbox(); 
    $('.modal').modal(); 
    $('.parallax').parallax(); 
}); 
+0

Почему вы используете 'require()'? –

+0

@Thomas Потому что это современный, рекомендуемый способ. https://laravel.com/docs/5.4/mix – ceejayoz

ответ

1

У меня также была такая проблема с материализацией-css в Laravel 5.4, и моим быстрым решением было загрузить источник materializecss в/resources/assets/вручную. Это то, что мой каталог выглядит сейчас,

/resources 
----/js 
-------app.js 
-------bootstrap.js 
----/materialize 
-------/css 
-------/fonts 
-------/js 

Тогда, на мой bootstrap.js, я добавил этот код

require('../materialize/js/materialize.js');

И это решить мою проблему.

+0

Когда я пробую это и запускаю npm run dev, я получаю ошибку. Эта зависимость не найдена: * hammerjs ./resources/assets/js/materialize-js/js/materialize.js – user2722667

-1

Путь включить JavaScript в лопатках (в Laravel) является:

<script src="{{ asset('assets\bower\jquery\dist\jquery.min.js') }}"></script> 
<script src="{{ asset('assets\bower\materialize\dist\js\materialize.min.js') }}"></script> 

Вашего assests (JS & CSS) должен быть расположен где-то под /public

Я бы рекомендовал использовать беседку для вашего управления активами, но это не требуется.

+0

Это уже не рекомендуемый или современный способ сделать это. https://laravel.com/docs/5.4/mix – ceejayoz

+0

@ceejayoz ah, который был слишком современным для меня;) Учитывая, что это включено в последнюю неделю, давайте попробуем! –

Смежные вопросы