Laravel整合Bootstrap 4的完整方案(推荐)


Posted in Javascript onJanuary 25, 2018

如果你是想在laravel5.5上直接使用bootstrap 4,这应该是相对明智的,因为bootstrap 4最终版本已经发布了,那么这里有一个好消息,就是你不需要一步步执行下面的步骤了,你可以通过安装一个插件来快速使用上boostrap 4了,插件链接:laravelnews/laravel-twbs4,具体如何使用就不赘述了,按照插件文档进行就好了。 如果你是在laravel5.5之前的版本整合bootstrap 4,那么你还是需要走一遍下面的流程:

(一)安装bootstrap及相应依赖

npm install bootstrap@4.0.0-beta popper.js --save-dev

bootstrap-sass package.json 中删除,然后再执行 npm install

(二)在你的 app.scss 文件中引入新的bootstrap的sass文件

//替换掉之前bootstrap-sass的引入
//如果你是laravel 5.5及以后的版本,这里的node_modules换成~符号
@import "node_modules/bootstrap/scss/bootstrap";

(三)编译bootstrap的js文件

在这一步可能你会想直接复制一份你的 bootstrap.min.js 文件到public目录,然后引用,但实际上这样是不行的,因为bootstrap 4的js组件还依赖 jquery 和 Popper.js ,默认的 bootstrap.min.js 文件并没有编译进去。

方法一 使用 bootstrap.min.js 来编译

这个时候我们需要在 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')

可以看到,我们通过 mix.autoload() 方法自动加载 jqueryPopper.js ,这样在下面 mix.js() 方法编译 bootstrap.min.js 文件的时候就把相应的依赖编译进去了,最后我们将编译好的文件发送到了 public/js/ 目录下,然后在需要的地方调用即可。

方法二 使用 bootstrap.bundle.min.js 来编译

如果你到bootstrap的 node_modules/bootstrap/dist/js/ 目录下,会发现还有一个 bootstrap.bundle.min.js 文件,这个文件里其实已经预先编译了 Popper.js 进去,但是没有 jquery ,所以刚才的 webpack.mix.js 文件里,我们其实也可以这样来写:

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')

最终压缩出来的文件都是一样的,如果你是用 npm run dev 来编译,那么第二种方法压缩出来的文件要小一点,但如果是到了生产环境,也即 npm run production ,那么两者的大小都是一样的。

当然,第二种方法除了少写一行,还有一个好处,就是在最开始的时候,就不需要 npm install popper.js 了,无可厚非了,少下载个组件而已。

(四)加载bootstrap 4的分页视图(pagination blade)

至此,大家就可以按照bootstrap 4文档在blade视图中实际使用了,或者将已有的bootstrap 3的改成4的,因为这是bootstrap的一次相对颠覆性的升级,所以无法向下兼容,取决于你的项目大小,但一般而言将bootstrap 3的改成4是需要费一阵子功夫的。

具体的不多谈,这期间可能比较困惑的就是如何升级bootstrap 4的分页样式,方法也很多,这里提供一个最简单最快速的:

首先,找到你的 resources/views/vendor/pagination 目录,这是laravel默认的分页样式视图文件,如果没有执行一下 php artisan vendor:publish 就有了

default.blade.php
bootstrap-4.blade.php
simple-default.blade.php
simple-bootstrap-4.blade.php

可以看到laravel其实默认就已经为我们准备好了bootstrap 4的分页模板文件,这个时候最简单的就是改一下文件名字即可,之前的 default.blade 就是原来的bootstrap 3的,所以我们可以将其改成 bootstrap-3.blade.php ,然后将 bootstrap-4.blade 改成默认的 default.blade ,这样laravel加载分页的时候用的就是4的样式了。

固然,你也可以像laravel文档上说的,在每一次渲染分页的时候指定具体的分页视图文件,比如:

$paginator->links('vendor.pagination.bootstrap-4')

但这样太麻烦,知道即可。

总结

以上所述是小编给大家介绍的Laravel整合Bootstrap 4的完整方案,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Javascript 相关文章推荐
初识JQuery 实例一(first)
Mar 16 Javascript
stream.js 一个很小、完全独立的Javascript类库
Oct 28 Javascript
$.get获取一个文件的内容示例代码
Sep 11 Javascript
jquery绑定事件不生效的解决方法
Feb 11 Javascript
jquery制作搜狐快站页面效果示例分享
Feb 21 Javascript
jQuery实现单击按钮遮罩弹出对话框(仿天猫的删除对话框)
Apr 10 Javascript
兼容主流浏览器的jQuery+CSS 实现遮罩层的简单代码
Oct 14 Javascript
JS+CSS实现仿新浪微博搜索框的方法
Feb 24 Javascript
Vue ElementUi同时校验多个表单(巧用new promise)
Jun 06 Javascript
Vue实现指令式动态追加小球动画组件的步骤
Dec 18 Vue.js
vue中封装axios并实现api接口的统一管理
Dec 25 Vue.js
Handtrack.js库实现实时监测手部运动(推荐)
Feb 08 Javascript
jquery根据name取得select选中的值实例(超简单)
Jan 25 #jQuery
用jquery获取select标签中选中的option值及文本的示例
Jan 25 #jQuery
利用js给datalist或select动态添加option选项的方法
Jan 25 #Javascript
基于vue.js无缝滚动效果
Jan 25 #Javascript
vue router嵌套路由在history模式下刷新无法渲染页面问题的解决方法
Jan 25 #Javascript
vue通过路由实现页面刷新的方法
Jan 25 #Javascript
jQuery zTree搜索-关键字查询 递归无限层功能实现代码
Jan 25 #jQuery
You might like
php 从数据库提取二进制图片的处理代码
2009/09/09 PHP
php中time()和mktime()方法的区别
2013/09/28 PHP
PHP中设置一个严格30分钟过期Session面试题的4种答案
2014/07/30 PHP
php实现cookie加密的方法
2015/03/10 PHP
以实例全面讲解PHP中多进程编程的相关函数的使用
2015/08/18 PHP
php curl 模拟登录并获取数据实例详解
2016/12/22 PHP
php的instanceof和判断闭包Closure操作示例
2020/01/26 PHP
jquery tab插件精简版分享
2011/09/10 Javascript
基于jQuery的简单九宫格实现代码
2012/08/09 Javascript
js判断选择时间不能小于当前时间的示例代码
2013/09/24 Javascript
div模拟滚动条效果示例代码
2013/10/16 Javascript
jquery实现滑动图片自己测试的例子
2013/11/05 Javascript
jQuery循环滚动新闻列表示例代码
2014/06/17 Javascript
JS+CSS实现Div弹出窗口同时背景变暗的方法
2015/03/04 Javascript
JavaScript中匿名函数用法实例
2015/03/23 Javascript
AngularJS向后端ASP.NET API控制器上传文件
2016/02/03 Javascript
手机端 HTML5使用photoswipe.js仿微信朋友圈图片放大效果
2016/08/25 Javascript
jQuery插件FusionCharts绘制ScrollColumn2D图效果示例【附demo源码下载】
2017/03/22 jQuery
AngularJS 中的数据源的循环输出
2017/10/12 Javascript
详解Vue CLI 3.0脚手架如何mock数据
2018/11/23 Javascript
解决vue动态路由异步加载import组件,加载不到module的问题
2020/07/26 Javascript
vue.js+element 默认提示中英文操作
2020/11/11 Javascript
python创建进程fork用法
2015/06/04 Python
Python聚类算法之凝聚层次聚类实例分析
2015/11/20 Python
Python制作刷网页流量工具
2017/04/23 Python
python随机数分布random测试
2018/08/27 Python
为什么str(float)在Python 3中比Python 2返回更多的数字
2018/10/16 Python
django项目用higcharts统计最近七天文章点击量
2019/08/17 Python
Python Scrapy框架第一个入门程序示例
2020/02/05 Python
scrapy数据存储在mysql数据库的两种方式(同步和异步)
2020/02/18 Python
Python3如何使用tabulate打印数据
2020/09/25 Python
Python Pandas list列表数据列拆分成多行的方法实现
2020/12/14 Python
英国知名衬衫品牌美国网站:Charles Tyrwhitt美国
2016/08/28 全球购物
关于教师节的广播稿
2014/09/10 职场文书
68句权威创业名言
2019/08/26 职场文书
盘点2020年适合农村地区创业的项目
2019/10/16 职场文书