Javascript Grunt和angularJS:更改prod服务器上的位置

Javascript Grunt和angularJS:更改prod服务器上的位置,javascript,angularjs,gruntjs,Javascript,Angularjs,Gruntjs,在我的angularJS应用程序中,我有这样一句话: <span class="build-version">@@appversion</span> @@appversion 而这样的任务在咕哝: replace: { dist: { options: { patterns: [ { match: '@@appversion', replacement: grunt.option('bui

在我的angularJS应用程序中,我有这样一句话:

<span class="build-version">@@appversion</span>
@@appversion
而这样的任务在咕哝:

replace: {
  dist: {
    options: {
      patterns: [
        {
          match: '@@appversion',
          replacement: grunt.option('build-version')?grunt.option('build-version'):'#debug'
        }
      ],
      usePrefix: false
    },
    files: [
      {expand: true, flatten: true, src: ['<%= yeoman.dist %>/index.html'], dest: '<%= yeoman.dist %>'},
      {expand: true, flatten: true, src: ['<%= yeoman.dist %>/scripts/scripts.js'], dest: '<%= yeoman.dist %>/scripts'}
    ]
  }
}
替换:{
地区:{
选项:{
模式:[
{
匹配:'@@appversion',
替换:grunt.option('build-version')?grunt.option('build-version'):“#调试”
}
],
usePrefix:false
},
档案:[
{expand:true,flatten:true,src:['/index.html'],dest:'},
{expand:true,flatten:true,src:['/scripts/scripts.js'],dest:'/scripts'}
]
}
}
在prod.server上,文件仅从dev.server复制粘贴(而且它们具有不同的域名)

它是真的吗?如何不替换prod服务器上的构建版本,例如根据域名、url等

我唯一想到的是以下代码:

<span class="build-version" ng-hide="location.path().indexOf('prodserv') > -1">@@appversion</span>
@@appversion

但是也许有更多更好的方法可以做到这一点?

我会根据服务器变量而不是根据域(或基于客户端的任何内容)来确定产品的版本(生产、开发)。这样,您甚至不需要对服务器端代码进行任何更改,它只需要有一个服务器变量来告诉他它是什么版本,并在应用程序加载时通过ajax请求将该信息传递给angular应用程序


如果您喜欢在客户端中使用appversion,那么使用一个包含正确版本的config.json文件可能比根据URL猜测更好。

不过,我不认为在开发版本中显示appversion也有问题。@您是什么意思?我是说为什么必须在开发版本中隐藏它(非prod)版本。@您不明白:在prod上隐藏,在dev上显示。