2017-06-16 63 views
0

我读了this关于如何包含像JQuery这样的库的文档页面。我继续像这样:在Laravel 5.5中包含JS库

npm install jquery 
npm run dev 

由于JQuery的没有成为在此之后神奇地可用,我环顾四周,并且有它被引用并在public/js/app.js使用。所以我在我的主布局文件中使用了以下行,现在我可以使用JQuery。

<script src="{{asset('js/app.js')}}"></script> 

我没有看到这样的解决方法具竞争力的超低,所以我的问题是,我是这样做的权利?此外,我在控制台中出现此错误:

TypeError: window.Laravel is undefined[Learn More] http://localhost/js/app.js:1697:1 webpack_requirehttp://localhost/js/app.js:20:12 http://localhost/js/app.js:778:1 webpack_requirehttp://localhost/js/app.js:20:12 http://localhost/js/app.js:41491:1 webpack_requirehttp://localhost/js/app.js:20:12 http://localhost/js/app.js:66:18 http://localhost/js/app.js:1:11

+0

它的laravel 5.4 ... – Fahmi

回答

1

Laravel 5.5自带jQuery开箱即用。你实际上不需要做任何事情。

您的错误似乎与其CSRF令牌有关。参考window.Laravel is undefined

将此项添加到HTML文件的<head></head>部分。

<script> 
    window.Laravel = {!! json_encode([ 
     'csrfToken'=>csrf_token() 
    ]) !!} 
</script> 
+0

所以,回到问题。我怎么一般包括JS库? –

+0

@MakanTayebi所以当你第一次使用Laravel时,你会在'app.js'里面有一个叫'bootstrap.js'的文件。 'bootstrap.js'已经配置好了jQuery。所有你需要做的就是把你的'app.js'脚本链接到你的HTML文件中,这就是你所需要的。 就像我所说的,你的问题可能是Laravel CSRF令牌。请参阅上面的代码块的答案。 –

2

是的,这是在Laravel 5.4和5.5中都包含jQuery的最直接的方法。  但这可能不是唯一的方式也不是最好的方法。   Laravel允许至少有两种方式来包含外部或自定义JS库。

方法A:没有Laravel混合

方法B:用Laravel混合物(NPM运行开发/生产)

Laravel包括jQuery的使用方法B,文件resources/assets/js/bootstrap.js英寸

对于resources/assets生效的任何更改,首先需要在项目目录下运行npm run dev/production。  此结合包括在assets/js/所有JS文件到单个文件public/js/app.js,然后可以通过包括

<script src="{{asset('js/app.js')}}"></script> 
在视图中的
<head>...</head>

使用。

至于window.Laravel is undefined错误,这

<script> 
    window.Laravel = {!! json_encode([ 
     'csrfToken' => csrf_token(), 
    ]) !!}; 
</script> 

还需要在需要每一个视图文件和<head>...</head>public/js/app.js之前。