【问题标题】:sails.js Asset VersioningSails.js 资产版本控制
【发布时间】:2014-05-29 05:39:28
【问题描述】:

我正在使用sails.js 资产链接器。

我通过在其中附加资产版本来对资产进行版本控制,如下所示:

assetfile.js?=<%= assetVersion %>

不幸的是,这不起作用,因为 js 文件名正在被链接器替换!

sails.js 链接器是否支持解决此问题?还是我自己去破解 grunt 文件?

【问题讨论】:

  • Sails 没有对资产版本控制的原生支持。但是,Grunt 文件意味着会被黑客入侵。如果您想出了一个好的解决方案,请将其发布为其他人分享的答案!
  • @sgress454 在下面看到我的回答,可能会有所帮助

标签: node.js sails.js


【解决方案1】:

如果您从 git 存储库托管,则可以使用 git commit sha 来识别版本。

我在我的一个项目中使用这种方法,它包括将以下内容作为rename.js 添加到tasks/config

var git = require('git-rev')

module.exports = function(grunt) {

  git.short(function(hash) {

    var files = {
      '.tmp/public/min/production.' + hash + '.min.js': '.tmp/public/min/production.min.js',
      '.tmp/public/min/production.' + hash + '.min.css': '.tmp/public/min/production.min.css'
    }

    grunt.config.set('rename', {
      dist: {
        files: files
      }
    })

  })

  grunt.loadNpmTasks('grunt-rename')

};

然后在链接器任务之前的tasks/register/prod.js 中添加重命名任务。

【讨论】:

    【解决方案2】:

    基于@CaseyWebb 的解决方案,我们扩展了我们的sails 应用程序以解决带有时间戳的版本控制问题。这里还有一篇非常详细的博客文章:https://naya.com.np/post/391862c0520b5b5632e99e812749a85b

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-07-21
      • 2017-02-12
      • 1970-01-01
      • 2014-03-25
      • 2012-04-13
      • 1970-01-01
      • 2013-01-10
      • 1970-01-01
      相关资源
      最近更新 更多