gruntjs-从javascript访问版本(ed)图像
My Gruntile.js包含一个关于图像的rev任务,witch很好:gruntjs-从javascript访问版本(ed)图像,javascript,requirejs,gruntjs,Javascript,Requirejs,Gruntjs,My Gruntile.js包含一个关于图像的rev任务,witch很好: rev: { dist: { files: { src: [ '<%= yeoman.dist %>/scripts/{,*/}*.js', '<%= yeoman.dist %>/styles/{,*/}*.css', '<%= yeoman.dis
rev: {
dist: {
files: {
src: [
'<%= yeoman.dist %>/scripts/{,*/}*.js',
'<%= yeoman.dist %>/styles/{,*/}*.css',
'<%= yeoman.dist %>/images/{,*/}*.{png,jpg,jpeg,gif,webp}',
'<%= yeoman.dist %>/styles/fonts/{,*/}*.*'
]
}
}
},
在rev任务运行后,我如何访问图像文件,并且仍然能够在“grunt服务器”模式下访问这些文件
谢谢
Xavier您试过使用吗?
通常情况下,您的工作是在代码中用minified/revved/替换原始文件名。。版本
usemin
通常只针对CSS和HTML文件,但我认为编辑配置也应该允许解析js文件
我不知道backstretch
,但如果这不起作用,因为您的用户会在某个时候下载图像,一种黑客方法可能是使用class=“special class”
在html中添加图像,这将允许使用jQuery选择图像,并执行显示:无代码>。这些图像将更新其源代码,然后您可以这样做:
require(['app', 'jquery', 'jqueryBackstretch'], function (app, $) {
'use strict';
$(function() {
var images = [];
$('.special-class').each(function() {
images.push($(this).attr('src'));
});
$('.stretch').backstretch(
images,
{duration: 4000, fade: 'slow'}
);
});
});
这还远远不够完美,但是如果你不能使用usemin
,至少这应该是可行的。我没有找到使用usemin的答案。这里似乎不是为了这个。您的解决方案最终运行良好,我只需确保图像不会被加载两次。谢谢
require(['app', 'jquery', 'jqueryBackstretch'], function (app, $) {
'use strict';
$(function() {
var images = [];
$('.special-class').each(function() {
images.push($(this).attr('src'));
});
$('.stretch').backstretch(
images,
{duration: 4000, fade: 'slow'}
);
});
});