0
<link rel="stylesheet" type="text/css" href="../Content/Dashboard/CustomTooltip.css?v=<%= System.Diagnostics.FileVersionInfo.GetVersionInfo(System.Reflection.Assembly.GetExecutingAssembly().Location).FileVersion %>" />

几个问题:

  • 这是解决这个问题的好方法吗?这个想法是,当我们的产品组装信息发生变化时,版本更新,CSS文件的路径被修改并使缓存失效。
  • 如果我将 C# 代码放入监视窗口,我会看到正确的版本信息,但在 .aspx 页面中它无法加载它。没有错误消息,但它只是说 .css?v= 没有版本。

谢谢

编辑:这似乎与正在发生的反射有关。如果我说:

System.Reflection.Assembly.GetExecutingAssembly().GetName().Name

我在监视窗口中看到了正确的名称,但是在 .aspx 页面上进行评估时,它是 App_Web_35(不正确)。知道如何解决这个问题吗?

Edit2:我最终选择了一个我不太满意的解决方案,但很想听听其他意见。我只是说:

protected string GetApplicationVersion()
{
    return System.Diagnostics.FileVersionInfo.GetVersionInfo(Assembly.GetExecutingAssembly().Location).FileVersion;
}

在我相关的 CS 页面上——然后在我调用的代码中 <% GetApplicationVersion() %> 现在它很高兴地返回了正确的信息。不过,我希望它可以内联。

4

1 回答 1

1

css 文件是静态的,例如 html。考虑创建不同的css文件并像这样调用它

<link rel="stylesheet" type="text/css" href="../Content/Dashboard/CustomTooltip_<%= `System.Diagnostics.FileVersionInfo.GetVersionInfo(System.Reflection.Assembly.GetExecutingAsse`m`bly().Location).FileVersion %>.css" />`

所以你需要一个这样的css文件../Content/Dashboard/CustomTooltip_1.0.css

于 2011-10-21T17:45:00.500 回答