【问题标题】:Grunt usemin failing to insert rev'd image paths into jade partialsGrunt usemin 无法将 rev'd 图像路径插入到翡翠部分
【发布时间】:2026-02-02 22:25:01
【问题描述】:

我使用的是 yeoman angular-fullstack 生成器 - 执行 grunt serve:dist 时会出现此问题。图像已成功修改,但更新后的图像路径未添加到任何玉视图。

usemin 块:

usemin: {
  html: ['<%= yeoman.dist %>/views/**/*.html',
         '<%= yeoman.dist %>/views/**/*.jade'],
  css: ['<%= yeoman.dist %>/styles/{,*/}*.css'],
  options: {
    assetsDirs: ['<%= yeoman.dist %>/public']
  }
},

我已将 html 目标更改为递归通配符,因为我的大部分玉文件都位于“partials”目录中。但是,一个新的 angular-fullstack 项目在 partials 目录中也有玉文件,并且图像替换按预期工作。

文件夹结构 - 源文件:

/app/views/*
/app/images/*
/app/scripts/*
/app/styles/

文件夹结构 - dist 文件:

/dist/views/*
/dist/public/images/*
/dist/public/scripts/
/dist/public/styles/

Revving 适用于 CSS 和 JS 文件,但不适用于图像。

jade partial 中的图片路径示例:

img(src='/images/old_landing/record-landing.png')

如果有任何其他信息有帮助,请告诉我。

【问题讨论】:

    标签: angularjs gruntjs yeoman build-system grunt-usemin


    【解决方案1】:

    我遇到了非常相似的问题 - 对 rev'd 图像的引用未能在 css 中更新。当 usemin 有 dirs: 用于选项而不是 assetsDirs: 时,总是习惯于工作 - 所以猜测可能是一些未记录的更改。 我不知道这是否对你有用 - 但它对我有用 - 在我更改的 usemin 选项中

    assetsDirs: ['&lt;%= yeoman.dist %&gt;']

    assetsDirs: ['&lt;%= yeoman.dist %&gt;/**/']

    或者在你的情况下,更有针对性的可能是(猜测!)

    assetsDirs: ['&lt;%= yeoman.dist %&gt;/public/**/']

    【讨论】: