我在bower
和gulp
使用了boostrap。
我第一次将bootstrap.css
从bower_components
复制到我网站的dist
文件夹,似乎一切正常。
Hovever我发现我没有glyphicons
。这是因为字体,我保存在bootstrap.css
我发现bootstrap目录中有less
个文件夹,其中包含variables.less
文件:
//** Load fonts from this directory.
@icon-font-path: "../fonts/";
好的,也许如果我在variables.less
中更改了相对路径,请将bootstrap.less
与gulp一起输出并输出为dist
文件夹中的css,它可能会有效,但如果我更新bootstrap然后我将失去所有修改......
bower_components
-- bootstrap
---- less
------ bootstrap.less
------ variables.less // @icon-font-path = "../fonts/"
------ ...
---- fonts
------ glyphicons.ttf // etc
dist
-- css
---- bootstrap
------ bootstrap.css // here I need @icon-font-path = "../../fonts/bootstrap/"
-- fonts
---- bootstrap
------ glyphicons.ttf // etc
有没有办法用gulp自定义文件覆盖该值?
限制
bower_components
文件夹中的任何文件,因为它们将在下一次的投标恢复操作中被替换。因此,我无法直接修改bower文件夹中的bootstrap.less
和variables.less
文件... 答案 0 :(得分:4)
最后,我可以通过以下方式覆盖该变量:
/bower_components
--/bootstrap
----/less
------/boostrap.less
------/variables.less
----/fonts
------/glyp..etc..ttf
/dev
--/bootstrap
----/main.less
----/myVariables.less
/dist
--/bootstrap
----/bootstrap[.min].css
--/fonts
----/bootstrap
------/glyp..etc...ttf
myVariables.less
的内容:
//** Load Bootsrap fonts from this directory.
@icon-font-path: "../../fonts/bootstrap/";
main.less
的内容如下:
@import '../../../bower_components/bootstrap/less/bootstrap.less';
// override boostrap variables
@import 'variables.less';
覆盖魔法持续存在,less variables are lazy loaded
和最新声明/归因在编译文件时赢得其他人。
因此gulp
处理的引导源如下:
css: devFolder + '/bootstrap/main.less' // compile/minimize to css
fonts: bowerFolder + '/bootstrap/dist/fonts/*.*' // copy to dist
js: bowerFolder + '/bootstrap/dist/js/bootstrap.js' // minimize to dist
阅读文章:
答案 1 :(得分:1)
您不必在此处覆盖bootstrap icon-font-path
变量。从bower_components
中的样式表引用dist
中的字形,不是应该如何处理此问题。
实际上,应用程序所依赖的本地资源应部署到dist
,其中包括glyphicons
。
您可以执行gulp任务,以便将资源复制到dist
。这是一个例子:
gulp.task('copy:resources', function () {
var glyphiconsGlob = 'bower_components/bootstrap/fonts/*.*';
return gulp.src(glyphiconsGlob).pipe(gulp.dest(conf.paths.dist + 'css/fonts/'));
});
您可能需要根据文件gulp.dest
在bootstrap.css
文件夹中的位置调整dist
中的路径。