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的選擇器中的通配符[id^=''code'']或[name^=''code'']及jquery選擇器總結(jié)
這篇文章主要介紹了jQuery的選擇器中的通配符[id^='code']或[name^='code']及jquery選擇器總結(jié)的相關(guān)資料,需要的朋友可以參考下2015-12-12
Jquery chosen動(dòng)態(tài)設(shè)置值實(shí)例介紹
Jquery chosen一款選擇插件,支持檢索,多選,但不支持輸入效果,下面與大家分享下其使用示例,感興趣的朋友可以參考下,希望對(duì)大家有所幫助2013-08-08
jQuery EasyUI實(shí)現(xiàn)右鍵菜單變灰不可用效果
用jQuery實(shí)現(xiàn)了三種情況下的變灰不可用的效果,當(dāng)鼠標(biāo)放到上面點(diǎn)擊,右鍵菜單就會(huì)消失,其實(shí)解決的辦法也很簡(jiǎn)單,只要在對(duì)應(yīng)的單擊事件里重新綁定右鍵菜單即可,需要的朋友可以參考下2015-09-09
最佳6款用于移動(dòng)網(wǎng)站開(kāi)發(fā)的jQuery 圖片滑塊插件小結(jié)
隨著智能手機(jī)的普及,越來(lái)越多的用戶(hù)喜歡通過(guò)手機(jī)中瀏覽網(wǎng)頁(yè)。今天這篇文章為大家推薦最佳6款用于移動(dòng)應(yīng)用的 jQuery 圖片滑塊插件,這些插件很好的處理了觸屏事件,效果平滑,幫助你構(gòu)建用戶(hù)體驗(yàn)良好的移動(dòng)網(wǎng)站2012-07-07
jQuery給div,Span, a ,button, radio 賦值與取值
這篇文章主要介紹了jQuery給div,Span, a ,button, radio 賦值與取值的相關(guān)資料,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下2016-06-06
真正的JQuery.ajax傳遞中文參數(shù)的解決方法
許多人在使用JQuery.ajax方法時(shí)肯定會(huì)遇到一個(gè)問(wèn)題。在編碼不是UTF-8的時(shí)候,當(dāng)傳遞的參數(shù)里有中文的時(shí)候,服務(wù)端Request的時(shí)候都會(huì)出現(xiàn)亂碼。2011-05-05
jquery拖動(dòng)層效果插件用法實(shí)例分析(附demo源碼)
這篇文章主要介紹了jquery拖動(dòng)層效果插件用法,結(jié)合實(shí)例形式分析了jquery-ui-1.7.2.custom.min.js插件的具體使用技巧,并附帶完整demo源碼供讀者下載參考,需要的朋友可以參考下2016-04-04

