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

几个问题:向CSS文件添加一些自动版本控制。我怎么会无法拉出组装信息?

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

感谢

编辑:好像它是与这回事反射。如果我说:

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

我在监视窗口看到正确的名称,但在.aspx页面上进行评估时,它是App_Web_35(不正确)。任何想法如何解决这个问题?编辑2:我结束了一个我不太满意的解决方案,但很想听听其他输入。我只是把:

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

我的CS相关页面上 - 然后在代码behing我叫<%GetApplicationVersion()%>,现在愉快地返回正确的信息。不过,我希望它可以内联。

回答

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" />` 

,所以你需要这样的../Content/Dashboard/CustomTooltip_1.0.css

+1

为什么一个CSS文件?我目前只是使用?t = <%DateTime.Now.Ticks%>,这对于在开发过程中完全防止缓存很有效...... –

+0

是的,你可以附加一个随机数或类似的东西,以确保它没有被缓存。但我认为你想不同的CSS文件。 – dknaack

相关问题