Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/474.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Yeoman正在更改图片文件名,而不是在HTML中更新_Javascript_Html_Css_Angularjs_Yeoman - Fatal编程技术网

Javascript Yeoman正在更改图片文件名,而不是在HTML中更新

Javascript Yeoman正在更改图片文件名,而不是在HTML中更新,javascript,html,css,angularjs,yeoman,Javascript,Html,Css,Angularjs,Yeoman,在约曼的帮助下,我一直在构建一个有角度的应用程序,我发现除了一件小事之外,它非常令人愉快 当我使用grunt-service:dist构建和部署我的项目时,我使用的所有图像都被破坏了。这是因为Yeoman正在更改每一张图片的文件名,但却懒得更新HTML。但是,它确实更新了CSS 例如,如果我有一张名为default\u picture的图片,并且我在HTML中使用它,就像这样: <img src="../images/default_picture.jpg" alt="#">

在约曼的帮助下,我一直在构建一个有角度的应用程序,我发现除了一件小事之外,它非常令人愉快

当我使用
grunt-service:dist
构建和部署我的项目时,我使用的所有图像都被破坏了。这是因为Yeoman正在更改每一张图片的文件名,但却懒得更新HTML。但是,它确实更新了CSS

例如,如果我有一张名为
default\u picture
的图片,并且我在HTML中使用它,就像这样:

<img src="../images/default_picture.jpg" alt="#">

构建项目时,Yeoman将图像的文件名从
default\u picture
更改为类似
default\u picture.cbed2a58.jpg
的文件名,但是
img
标记中的
src
从未更新,因此图像不再具有对目录结构中有效图像的引用

我在Github上搜索了Yeoman项目,似乎找不到答案


如何解决此问题,以便正确更新HTML或停止更改图像文件名?

我能想出的解决此问题的唯一方法是注释掉这一行:

// Renames files for browser caching purposes
filerev: {
    dist: {
        src: [
            '<%= yeoman.dist %>/scripts/{,*/}*.js',
            '<%= yeoman.dist %>/styles/{,*/}*.css',
            // '<%= yeoman.dist %>/images/{,*/}*.{png,jpg,jpeg,gif,webp,svg}',
            '<%= yeoman.dist %>/styles/fonts/*'
        ]
    }
}
//重命名文件以用于浏览器缓存
文件版本:{
地区:{
src:[
“/scripts/{,*/}*.js”,
“/styles/{,*/}*.css”,
//“/images/{,*/}*{png,jpg,jpeg,gif,webp,svg}”,
“/styles/fonts/*”
]
}
}

对我来说,这是在
grunfile.js
中的
214
行。这可能有一个解决方案,但这是一个临时修复。

Usemin没有在子文件夹中搜索,除非您特别提到它(就像我在下面grunfile.js(cfr.'/views/{,/}.html')的snipplet中所做的那样):

//根据filerev和useminPrepare配置执行重写
usemin:{
html:['/{,*/}*.html','/views/{,*/}*.html'],
css:['/styles/{,*/}*.css'],
选项:{
资产目录:['',/images']
}
}

这是我过去使用的解决方案。无论如何,我看不出有什么理由使用
filerev
。@JaredCubilla我认为这比任何东西都更能检查是否正常。如果我有一个名为
hello.png
的文件,我想在Photoshop或其他东西中更改图片,并将其再次保存为
hello.png和替换文件时,浏览器有时会缓存以前的图像,而您仍然会看到旧文件而不是新文件。因此,我明白原因,但它完全不起作用。我明白您的意思。在我的情况下,我通常不担心缓存图片,除非它们是Favicon。我明白为什么
filerev
会有用。我仍然使用filerev任务,但仅删除了我的字体和图像的filerev。是否有可能通过angularjs插入图像?有相同的问题。未加载的图像是由angular模块创建的。@RGBK,没有,我只是将它们插入HTML中。
// Performs rewrites based on filerev and the useminPrepare configuration
    usemin: {
      html: ['<%= yeoman.dist %>/{,*/}*.html', '<%= yeoman.dist %>/views/{,*/}*.html'],
      css: ['<%= yeoman.dist %>/styles/{,*/}*.css'],
      options: {
        assetsDirs: ['<%= yeoman.dist %>','<%= yeoman.dist %>/images']
      }
    }