.aspx HTML HEAD 添加 Unix 时间戳到样式表不起作用
.aspx HTML HEAD adding UnixTimestamp to stylesheet does not work
我想在我的 css 和 js 文件中添加一个参数,以不允许浏览器缓存特定文件。
我在我的 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 函数,returns 我的 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 的其余部分,我也使用这种技术来显示 NTLM 用户并且它有效。
有什么建议吗?
大家好,我找到了解决办法,
也许不是最好的,但它确实有效。
在 .aspx.cs 中,我编写了一个函数来生成缓存 url。此函数还使用了我上面的 UnixTimeStampUTC() 函数:
public String noCache(String url){
return '"' + url + "?ver=" + UnixTimeStampUTC() + '"';
}
然后我在我的 .aspx 中使用这个函数,如下所示:
<link rel="stylesheet" href=<%= noCache("css/style.css") %>>
也许这有助于寻找类似解决方案的人。
我想在我的 css 和 js 文件中添加一个参数,以不允许浏览器缓存特定文件。
我在我的 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 函数,returns 我的 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 的其余部分,我也使用这种技术来显示 NTLM 用户并且它有效。
有什么建议吗?
大家好,我找到了解决办法, 也许不是最好的,但它确实有效。
在 .aspx.cs 中,我编写了一个函数来生成缓存 url。此函数还使用了我上面的 UnixTimeStampUTC() 函数:
public String noCache(String url){
return '"' + url + "?ver=" + UnixTimeStampUTC() + '"';
}
然后我在我的 .aspx 中使用这个函数,如下所示:
<link rel="stylesheet" href=<%= noCache("css/style.css") %>>
也许这有助于寻找类似解决方案的人。