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']
}
}