2017-06-16 101 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之前。