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 相关文章推荐
Javascript 获取字符串字节数的多种方法
Jun 02 Javascript
js中的值类型和引用类型小结 文字说明与实例
Dec 12 Javascript
javascript弹出页面回传值的方法
Jan 28 Javascript
JS实现网页背景颜色与select框中颜色同时变化的方法
Feb 27 Javascript
js实现动态加载脚本的方法实例汇总
Nov 02 Javascript
jquery选择器中的空格与大于号>、加号+与波浪号~的区别介绍
Jun 24 Javascript
javascript 中的事件委托详解
Oct 25 Javascript
jQuery上传多张图片带进度条样式(DEMO)
Mar 02 Javascript
关于JS与jQuery中的文档加载问题
Aug 22 jQuery
JS手机端touch事件计算滑动距离的方法示例
Oct 26 Javascript
使用 Github Actions 自动部署 Angular 应用到 Github Pages的方法
Jul 20 Javascript
vue如何使用外部特殊字体的操作
Jul 30 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学习资源和链接.
2006/12/05 PHP
关于mysql字符集设置了character_set_client=binary 在gbk情况下会出现表描述是乱码的情况
2013/01/06 PHP
PHP 解决session死锁的方法
2013/06/20 PHP
php隐藏实际地址的文件下载方法
2015/04/18 PHP
PHP实现中文圆形印章特效
2015/06/19 PHP
PHP之密码加密的几种方式
2015/07/29 PHP
对google个性主页的拖拽效果的js的完整注释[转]
2007/04/10 Javascript
jquery 关键字“拖曳搜索”之“拖曳”以及 图片“提示自适应放大”效果 的实现
2010/04/18 Javascript
基于NodeJS的前后端分离的思考与实践(四)安全问题解决方案
2014/09/26 NodeJs
js中style.display=""无效的解决方法
2014/10/30 Javascript
JS实用的动画弹出层效果实例
2015/05/05 Javascript
javascript自动恢复文本框点击清除后的默认文本
2016/01/12 Javascript
jQuery实现简单的tab标签页效果
2016/09/12 Javascript
修改UA在PC中访问只能在微信中打开的链接方法
2017/11/27 Javascript
nuxt框架中路由鉴权之Koa和Session的用法
2018/05/09 Javascript
vue实现循环切换动画
2018/10/17 Javascript
VUE脚手架具体使用方法
2019/05/20 Javascript
Python中列表(list)操作方法汇总
2014/08/18 Python
Python处理JSON时的值报错及编码报错的两则解决实录
2016/06/26 Python
详解python中@的用法
2019/03/27 Python
django 类视图的使用方法详解
2019/07/24 Python
Django结合ajax进行页面实时更新的例子
2019/08/12 Python
在matplotlib中改变figure的布局和大小实例
2020/04/23 Python
Keras之自定义损失(loss)函数用法说明
2020/06/10 Python
S’well Bottle保温杯官网:绝缘不锈钢水瓶
2018/05/09 全球购物
诺心蛋糕官网:LE CAKE
2018/08/25 全球购物
MSC邮轮官方网站:加勒比海、地中海和世界各地的假期
2018/08/27 全球购物
某IT外企面试题-二分法求方程!看看大家的C++功底
2015/07/04 面试题
应聘美工求职信
2013/11/07 职场文书
标准化管理实施方案
2014/02/25 职场文书
农村党员一句话承诺
2014/05/30 职场文书
我爱家乡演讲稿
2014/09/12 职场文书
钳工实训报告总结
2014/11/04 职场文书
叶问观后感
2015/06/15 职场文书
大学生奖学金获奖感言(范文)
2019/08/15 职场文书
六个好看实用的 HTML + CSS 后台登录入口页面
2022/04/28 HTML / CSS