【问题标题】:What is the best way to version javascript files in a huge asp.net legacy project在大型 asp.net 遗留项目中版本化 javascript 文件的最佳方法是什么
【发布时间】:2013-01-31 13:52:04
【问题描述】:

当我们更改客户端时,我们的大部分资源都存在缓存问题,因为客户端的缓存不会在每次发布时都失效。

可能的解决方案 1: 来自 .net MVC,我正在考虑制作一个帮助器来处理每个资源并为它们分配一个版本,例如:

@SomeHelper.VersionJsFile("~/scripts/somejs1","~/scripts/somejs2","~/scripts/somejs3")

会输出:

<script src="~/scripts/somejs1?v=1234">
<script src="~/scripts/somejs2?v=1234">
...

问题: 我不知道如何在 ASP .net 中做类似的事情。 问题2:文件很多,可能会忘记其中的一些。

可能的解决方案 2: 另一种解决方案是浏览所有文件(很多文件......实际上,是一堆文件)并手动输入版本:

<script src="scripts/somejs1.js?v=<%=version %>

问题:很多文件,可能会忘记其中的一些。

可能的解决方案 3: 如本例所述编写自定义过滤器流:Filter stream example

问题:很危险,如果过滤器崩溃,客户端可能根本无法使用该软件。 问题 2: 正确实施相当“困难”,因为我不习惯使用流。 问题 3: 为未来的开发者维护相当“困难”。

可能的解决方案 4: 使用 YUI 压缩工具。别想了。这是遗留代码,为时已晚。

我的问题:在这样的系统中版本文件的最佳方式是什么?如果我已经找到了好的解决方案,您有关于如何正确实施上述解决方案的提示吗?

【问题讨论】:

  • 什么版本的 ASP.NET?

标签: c# asp.net .net assets


【解决方案1】:

我很幸运地使用Cassette 进行 js 资源的捆绑和版本控制。它supports webforms,仅在选项中用于版本控制/缓存破坏。在配置中需要对资源进行一些设置,但您只需在一次位置进行配置,页面可以在需要时引用它们的资源。

【讨论】:

  • 似乎是一个非常好的工具。我现在就去看看。
  • 在为 .net 3.5 编译时遇到了一些麻烦,但现在可以完美运行了。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-10-12
  • 1970-01-01
  • 1970-01-01
  • 2013-03-15
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多