2017-07-19 36 views
0

我想向我的css和js文件添加一个参数,以便不允许浏览器缓存特定的文件。.aspx添加UnixTimestamp到样式表的HTML HEAD不起作用

我尝试了两个版本在我的index.aspx和我的c#代码,但没有任何工作。

的第一次尝试是添加DateTime.Now.Ticks这样的:

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="index.aspx.cs" 
Inherits="_index" %> 
<!DOCTYPE html> 
<html lang="de"> 
<head runat="server"> 
<meta charset="UTF-8"> 
<title>Index Page</title> 
<link rel="stylesheet" href="css/vendor/bootstrap.min.css"> 
<link rel="stylesheet" href="css/vendor/bootstrap-datetimepicker.min.css"> 
<link rel="stylesheet" href="css/vendor/sweetalert2.min.css"> 
<link rel="stylesheet" href="css/style.css?<%=DateTime.Now.Ticks %>"> 

但培训相关线路正好显示了这样的时候呈现所以没有蜱的style.css后?而不是aspx代码。

另一个版本是写一个UnixTimeStamp函数返回我的Unix时间戳:

public Int32 UnixTimeStampUTC() 
    { 
     Int32 unixTimeStamp; 
     DateTime currentTime = DateTime.Now; 
     DateTime zuluTime = currentTime.ToUniversalTime(); 
     DateTime unixEpoch = new DateTime(1970, 1, 1); 
     unixTimeStamp = (Int32)(zuluTime.Subtract(unixEpoch)).TotalSeconds; 
     return unixTimeStamp; 
    } 

的我把它类似于以下,但结果是一样的:

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="index.aspx.cs" 
Inherits="_index" %> 
<!DOCTYPE html> 
<html lang="de"> 
<head runat="server"> 
<meta charset="UTF-8"> 
<title>Index Page</title> 
<link rel="stylesheet" href="css/vendor/bootstrap.min.css"> 
<link rel="stylesheet" href="css/vendor/bootstrap- 
datetimepicker.min.css"> 
<link rel="stylesheet" href="css/vendor/sweetalert2.min.css"> 
<link rel="stylesheet" href="css/style.css?<%= UnixTimeStampUTC() %>"> 

这再次呈现到:

<!DOCTYPE html> 
<html lang="de"> 
<head runat="server"> 
<meta charset="UTF-8"> 
<title>Index Page</title> 
<link rel="stylesheet" href="css/vendor/bootstrap.min.css"> 
<link rel="stylesheet" href="css/vendor/bootstrap- 
datetimepicker.min.css"> 
<link rel="stylesheet" href="css/vendor/sweetalert2.min.css"> 
<link rel="stylesheet" href="css/style.css?<%= UnixTimeStampUTC() %>"> 

在我的.aspx的其余部分我也使用这种技术t o显示NTLM用户并且它工作。

有什么建议吗?

+0

我现在已经得到了Workaroud一个解决方案: 我补充说,返回完整的链接功能 公共字符串NOCACHE(字符串URL){ 回报'“+网址+‘版本=’+ UnixTimeStampUTC()+ '“'; } –

+0

[Head标签中的内联代码 - ASP.NET]可能的副本(https://stackoverflow.com/questions/8104268/inline-code-in-head-tag-asp-net) –

回答

0

嘿家伙我发现了一个解决方案, 也许不是最好的,但它的工作原理。

在.aspx.cs中我写了一个函数来生成缓存url。此功能还使用了我的UnixTimeStampUTC()函数从上面:

public String noCache(String url){ 
    return '"' + url + "?ver=" + UnixTimeStampUTC() + '"'; 
} 

然后我使用这个功能在我的.aspx如下所示:

<link rel="stylesheet" href=<%= noCache("css/style.css") %>> 

也许这可以帮助别人寻找FO一个simmilar解决方案。