Laravel整合Bootstrap4完整方案
(一)安装bootstrap及相应依赖
npm install bootstrap@4.0.0-beta popper.js --save-dev
将bootstrap-sass
从中删除,然后再执行
npm install
(二)在你的
文件中引入新的bootstrap的sass文件
//替换掉之前bootstrap-sass的引入
//如果你是laravel 5.5及以后的版本,这里的node_modules换成~符号
@import "node_modules/bootstrap/scss/bootstrap";
(三)编译bootstrap的js文件
在这一步可能你会想直接复制一份你的文件到public目录,然后引用,但实际上这样是不行的,因为bootstrap 4的js组件还依赖
jquery
和,默认的
文件并没有编译进去。
方法一 使用
来编译
这个时候我们需要在添加这么几行:
({
jquery: ['$', '',"jQuery","window.$","jquery",""],
'': ['Popper']
});
([
'node_modules/bootstrap/dist/js/'
],'public/js/')
可以看到,我们通过()
方法自动加载jquery
和,这样在下面
()
方法编译文件的时候就把相应的依赖编译进去了,最后我们将编译好的文件发送到了
public/js/
目录下,然后在需要的地方调用即可。
方法二 使用
来编译
如果你到bootstrap的node_modules/bootstrap/dist/js/
目录下,会发现还有一个文件,这个文件里其实已经预先编译了
进去,但是没有
jquery
,所以刚才的文件里,我们其实也可以这样来写:
({
jquery: ['$', '',"jQuery","window.$","jquery",""]
});
([ 'node_modules/bootstrap/dist/js/'
],'public/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的分页模板文件,这个时候最简单的就是改一下文件名字即可,之前的就是原来的bootstrap 3的,所以我们可以将其改成
,然后将
改成默认的
,这样laravel加载分页的时候用的就是4的样式了。
固然,你也可以像laravel文档上说的,在每一次渲染分页的时候指定具体的分页视图文件,比如:
$paginator->links('')
但这样太麻烦,知道即可。