我正在与Yeoman合作开发AngularJS应用程序。
该应用程序依赖于与Bower一起安装的jQuery UI。这就是我包含jQuery UI主题的方式:
<!-- build:css styles/plugins.css -->
<link rel="stylesheet" href="components/jquery.ui/themes/base/jquery.ui.core.css" />
<link rel="stylesheet" href="components/jquery.ui/themes/base/jquery.ui.accordion.css" />
<link rel="stylesheet" href="components/jquery.ui/themes/base/jquery.ui.autocomplete.css" />
<link rel="stylesheet" href="components/jquery.ui/themes/base/jquery.ui.button.css" />
<link rel="stylesheet" href="components/jquery.ui/themes/base/jquery.ui.datepicker.css" />
<link rel="stylesheet" href="components/jquery.ui/themes/base/jquery.ui.dialog.css" />
<link rel="stylesheet" href="components/jquery.ui/themes/base/jquery.ui.menu.css" />
<link rel="stylesheet" href="components/jquery.ui/themes/base/jquery.ui.progressbar.css" />
<link rel="stylesheet" href="components/jquery.ui/themes/base/jquery.ui.resizable.css" />
<link rel="stylesheet" href="components/jquery.ui/themes/base/jquery.ui.selectable.css" />
<link rel="stylesheet" href="components/jquery.ui/themes/base/jquery.ui.slider.css" />
<link rel="stylesheet" href="components/jquery.ui/themes/base/jquery.ui.spinner.css" />
<link rel="stylesheet" href="components/jquery.ui/themes/base/jquery.ui.tabs.css" />
<link rel="stylesheet" href="components/jquery.ui/themes/base/jquery.ui.tooltip.css" />
<link rel="stylesheet" href="components/jquery.ui/themes/base/jquery.ui.theme.css" />
<!-- endbuild -->
构建应用程序时,一切顺利,没有错误。
但是,在浏览器控制台(使用Chrome)中,我看到找不到jQuery UI Datepicker所需的图像,因为它看起来在styles/images/
内,而它们实际上在components/...
内
截图
我的第一个想法是覆盖CSS中的jQuery UI图像路径,但这似乎不是最好的解决方案。例如:
原创样式
.ui-state-error .ui-icon,
.ui-state-error-text .ui-icon {
background-image: url(images/ui-icons_cd0a0a_256x240.png)/*{iconsError}*/;
}
我的覆盖
.ui-widget-header .ui-state-error {
background-image: url(../components/jquery.ui/themes/base/images/ui-bg_glass_95_fef1ec_1x400.png);
}
任何推荐的解决方案?
答案 0 :(得分:7)
我遇到了同样的问题。但是,我只是在grunt脚本(Gruntfile.js)中调整了“imagemin”任务,以便将图像复制到预期的位置,而不是更改jQuery CSS(可能对将来的更新有害......)。只要grunt负责修改缩小的css中的图像pathes,任何第三方库都是如此。
以下是我所做的更改(请注意我的jQuery UI主题文件夹位于app\styles
文件夹下)
之前:
imagemin : {
dist : {
files : [{
expand : true,
cwd : '<%= yeoman.app %>/images',
src : '{,*/}*.{png,jpg,jpeg}',
dest : '<%= yeoman.dist %>/images'
}
]
}
}
之后:
imagemin : {
dist : {
files : [{
expand : true,
cwd : '<%= yeoman.app %>/images',
src : '{,*/}*.{png,jpg,jpeg}',
dest : '<%= yeoman.dist %>/images'
}, {
expand : true,
flatten : true,
cwd : '<%= yeoman.app %>/styles',
src : '**/*.{png,jpg,jpeg,gif}',
dest : '<%= yeoman.dist %>/styles/images'
}
]
}
}
希望这有帮助!