强制浏览器在发布后清除缓存

时间:2016-10-07 17:55:38

标签: visual-studio-2015 msbuild tfs2015

如何在发布到服务器之前为构建中的所有脚本src属性添加后缀。

  

示例:

     

之前:<script src="js/app.js"></script>

     

之后:<script src="js/app.js?build=1.1.1"></script>

这是AngularJS应用程序并且存在浏览器缓存问题。

使用Visual Studio 2015.

1 个答案:

答案 0 :(得分:1)

简单的方法是您可以在构建中使用Replace Token任务。 例如:

  1. 修改您的代码,如下所示:<script src="js/app.js#{JSVersion}#"></script>并检入更改
  2. 在构建定义中添加变量(变量选项卡。如果它是静态值,则可以指定?build = 1.1.1) enter image description here
  3. 将替换标记任务添加到您的构建定义中 enter image description here
  4. 保存您的构建定义和队列构建。
  5. 您可以通过MSBuild执行此操作,例如:

    1. 将MSBuildTasks包添加到您的应用
    2. 修改您的JS参考代码,如下所示:

    3. 将此代码添加到项目文件中:

    4. 代码:

      <ItemGroup>
          <HtmlFiles Include='Views\**\*.cshtml' />
        </ItemGroup>
        <Target Name="AfterBuild"> 
      <FileUpdate  
         Files="@(HtmlFiles)"  
         Regex="#JSVersion#"  
         ReplacementText="?build=1.1" />
        <Message Text="Files: @(HtmlFiles)" Importance="high" />
      </Target>