Laravel整合Bootstrap 4的完整方案(推薦)
如果你是想在laravel5.5上直接使用bootstrap 4,這應(yīng)該是相對(duì)明智的,因?yàn)閎ootstrap 4最終版本已經(jīng)發(fā)布了,那么這里有一個(gè)好消息,就是你不需要一步步執(zhí)行下面的步驟了,你可以通過(guò)安裝一個(gè)插件來(lái)快速使用上boostrap 4了,插件鏈接:laravelnews/laravel-twbs4,具體如何使用就不贅述了,按照插件文檔進(jìn)行就好了。 如果你是在laravel5.5之前的版本整合bootstrap 4,那么你還是需要走一遍下面的流程:
(一)安裝bootstrap及相應(yīng)依賴(lài)
npm install bootstrap@4.0.0-beta popper.js --save-dev
將 bootstrap-sass 從 package.json 中刪除,然后再執(zhí)行 npm install
(二)在你的 app.scss 文件中引入新的bootstrap的sass文件
//替換掉之前bootstrap-sass的引入 //如果你是laravel 5.5及以后的版本,這里的node_modules換成~符號(hào) @import "node_modules/bootstrap/scss/bootstrap";
(三)編譯bootstrap的js文件
在這一步可能你會(huì)想直接復(fù)制一份你的 bootstrap.min.js 文件到public目錄,然后引用,但實(shí)際上這樣是不行的,因?yàn)閎ootstrap 4的js組件還依賴(lài) jquery 和 Popper.js ,默認(rèn)的 bootstrap.min.js 文件并沒(méi)有編譯進(jìn)去。
方法一 使用 bootstrap.min.js 來(lái)編譯
這個(gè)時(shí)候我們需要在 webpack.mix.js 添加這么幾行:
mix.autoload({ jquery: ['$', 'window.jQuery',"jQuery","window.$","jquery","window.jquery"], 'popper.js/dist/umd/popper.js': ['Popper'] }); mix.js([ 'node_modules/bootstrap/dist/js/bootstrap.min.js' ],'public/js/bootstrap.min.js')
可以看到,我們通過(guò) mix.autoload() 方法自動(dòng)加載 jquery 和 Popper.js ,這樣在下面 mix.js() 方法編譯 bootstrap.min.js 文件的時(shí)候就把相應(yīng)的依賴(lài)編譯進(jìn)去了,最后我們將編譯好的文件發(fā)送到了 public/js/ 目錄下,然后在需要的地方調(diào)用即可。
方法二 使用 bootstrap.bundle.min.js 來(lái)編譯
如果你到bootstrap的 node_modules/bootstrap/dist/js/ 目錄下,會(huì)發(fā)現(xiàn)還有一個(gè) bootstrap.bundle.min.js 文件,這個(gè)文件里其實(shí)已經(jīng)預(yù)先編譯了 Popper.js 進(jìn)去,但是沒(méi)有 jquery ,所以剛才的 webpack.mix.js 文件里,我們其實(shí)也可以這樣來(lái)寫(xiě):
mix.autoload({ jquery: ['$', 'window.jQuery',"jQuery","window.$","jquery","window.jquery"] }); mix.js([ 'node_modules/bootstrap/dist/js/bootstrap.bundle.min.js' ],'public/js/bootstrap.min.js')
最終壓縮出來(lái)的文件都是一樣的,如果你是用 npm run dev 來(lái)編譯,那么第二種方法壓縮出來(lái)的文件要小一點(diǎn),但如果是到了生產(chǎn)環(huán)境,也即 npm run production ,那么兩者的大小都是一樣的。
當(dāng)然,第二種方法除了少寫(xiě)一行,還有一個(gè)好處,就是在最開(kāi)始的時(shí)候,就不需要 npm install popper.js 了,無(wú)可厚非了,少下載個(gè)組件而已。
(四)加載bootstrap 4的分頁(yè)視圖(pagination blade)
至此,大家就可以按照bootstrap 4文檔在blade視圖中實(shí)際使用了,或者將已有的bootstrap 3的改成4的,因?yàn)檫@是bootstrap的一次相對(duì)顛覆性的升級(jí),所以無(wú)法向下兼容,取決于你的項(xiàng)目大小,但一般而言將bootstrap 3的改成4是需要費(fèi)一陣子功夫的。
具體的不多談,這期間可能比較困惑的就是如何升級(jí)bootstrap 4的分頁(yè)樣式,方法也很多,這里提供一個(gè)最簡(jiǎn)單最快速的:
首先,找到你的 resources/views/vendor/pagination
目錄,這是laravel默認(rèn)的分頁(yè)樣式視圖文件,如果沒(méi)有執(zhí)行一下 php artisan vendor:publish
就有了
default.blade.php bootstrap-4.blade.php simple-default.blade.php simple-bootstrap-4.blade.php
可以看到laravel其實(shí)默認(rèn)就已經(jīng)為我們準(zhǔn)備好了bootstrap 4的分頁(yè)模板文件,這個(gè)時(shí)候最簡(jiǎn)單的就是改一下文件名字即可,之前的 default.blade 就是原來(lái)的bootstrap 3的,所以我們可以將其改成 bootstrap-3.blade.php ,然后將 bootstrap-4.blade 改成默認(rèn)的 default.blade ,這樣laravel加載分頁(yè)的時(shí)候用的就是4的樣式了。
固然,你也可以像laravel文檔上說(shuō)的,在每一次渲染分頁(yè)的時(shí)候指定具體的分頁(yè)視圖文件,比如:
$paginator->links('vendor.pagination.bootstrap-4')
但這樣太麻煩,知道即可。
總結(jié)
以上所述是小編給大家介紹的Laravel整合Bootstrap 4的完整方案,希望對(duì)大家有所幫助,如果大家有任何疑問(wèn)請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!
- Laravel使用scout集成elasticsearch做全文搜索的實(shí)現(xiàn)方法
- Laravel 集成 Geetest驗(yàn)證碼的方法
- php的laravel框架快速集成微信登錄的方法
- Laravel框架中擴(kuò)展函數(shù)、擴(kuò)展自定義類(lèi)的方法
- PHP框架Laravel插件Pagination實(shí)現(xiàn)自定義分頁(yè)
- Laravel中基于Artisan View擴(kuò)展包創(chuàng)建及刪除應(yīng)用視圖文件的方法
- Laravel4中的Validator驗(yàn)證擴(kuò)展用法詳解
- 關(guān)于擴(kuò)展 Laravel 默認(rèn) Session 中間件導(dǎo)致的 Session 寫(xiě)入失效問(wèn)題分析
- Laravel中擴(kuò)展Memcached緩存驅(qū)動(dòng)實(shí)現(xiàn)使用阿里云OCS緩存
- Laravel框架集成UEditor編輯器的方法圖文與實(shí)例詳解
相關(guān)文章
jquery中ajax請(qǐng)求后臺(tái)數(shù)據(jù)成功后既不執(zhí)行success也不執(zhí)行error的完美解決方法
這篇文章主要介紹了jquery中ajax請(qǐng)求后臺(tái)數(shù)據(jù)成功后既不執(zhí)行success也不執(zhí)行error解決方法,需要的朋友可以參考下2017-12-12jQuery實(shí)現(xiàn)鼠標(biāo)單擊網(wǎng)頁(yè)文字后在文本框顯示的方法
這篇文章主要介紹了jQuery實(shí)現(xiàn)鼠標(biāo)單擊網(wǎng)頁(yè)文字后在文本框顯示的方法,可實(shí)現(xiàn)鼠標(biāo)點(diǎn)擊上方文字即可在下方勾選處文本框顯示對(duì)應(yīng)文字的效果,涉及jQuery鼠標(biāo)事件及鏈?zhǔn)讲僮鞯南嚓P(guān)技巧,需要的朋友可以參考下2015-05-05Jquery創(chuàng)建層顯示標(biāo)題和內(nèi)容且隨鼠標(biāo)移動(dòng)而移動(dòng)
本文為大家介紹下使用Jquery創(chuàng)建一個(gè)層顯示標(biāo)題的內(nèi)容且隨鼠標(biāo)移動(dòng),具體的實(shí)現(xiàn)如下2014-01-01Jquery 模擬用戶(hù)點(diǎn)擊超鏈接或者按鈕的方法
在Jquery中可以通過(guò)選中a標(biāo)簽使用trigger方法定義事件即可模擬用戶(hù)點(diǎn)擊超鏈接或者按鈕,感興趣的朋友操作下2013-10-10jQuery使用之標(biāo)記元素屬性用法實(shí)例
這篇文章主要介紹了jQuery使用之標(biāo)記元素屬性用法,實(shí)例分析了jQuery如何控制頁(yè)面,包含元素的屬性、css樣式風(fēng)格、DOM模型、表單元素和事件處理等使用技巧,需要的朋友可以參考下2015-01-01JQuery實(shí)現(xiàn)Table的tr上移下移功能
這篇文章主要為大家詳細(xì)介紹了JQuery實(shí)現(xiàn)Table的tr上移下移功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-02-02jQuery實(shí)現(xiàn)動(dòng)態(tài)加載(按需加載)javascript文件的方法分析
這篇文章主要介紹了jQuery實(shí)現(xiàn)動(dòng)態(tài)加載(按需加載)javascript文件的方法,結(jié)合實(shí)例形式分析了jQuery根據(jù)調(diào)用函數(shù)按需動(dòng)態(tài)加載javascript文件相關(guān)實(shí)現(xiàn)技巧,需要的朋友可以參考下2019-05-05jQuery插件實(shí)現(xiàn)手風(fēng)琴二級(jí)菜單
這篇文章主要為大家詳細(xì)介紹了jQuery插件實(shí)現(xiàn)手風(fēng)琴二級(jí)菜單,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-10-10