tarayıcılar ASP.NET uygulamada en son js ve css dosyalarını almak için zorla
Bazı önbellek js ve css dosyaları, onları zorlamadığın sürece onları yenilemek için başarısız tarayıcılar. En kolay yolu nedir.
Ben sadece iş gibi görünüyor bu bir çözüm uygulanmıştır.
Bir sürüm sayfanızda değişken bildirin
public string version { get; set; }
Sürüm numarasını web.yapılandırma anahtarı
version = ConfigurationManager.AppSettings["versionNumber"];
Eğer SEO sayfa aramaları javascript ve stil sayfaları gibi
<script src="scripts/myjavascript.js?v=<%=version %>" type="text/javascript"></script>
<link href="styles/mystyle.css?v=<%=version %>" rel="stylesheet" type="text/css" />
Eğer öyleyse web 1.0 version = 1.1 ayarlayın.config tarayıcınızın umarım sizin ve kullanıcıları biraz hayal kırıklığı kurtaracak olan en son dosyaları indirin.
Daha iyi çalışır başka bir çözüm var mı, yoksa bu bir web sitesi için herhangi bir beklenmedik sorunlara neden olur?
CEVAP
Komut için bir sorgu parametresi olarak son değişiklik zaman damgası teyel ile bunu çözdüm.
Uzantısı yöntemi ile yaptım, ve benim CSHTML kullanarak dosyaları.Not:bu uygulama disk sessiz çok thrash değiliz yani 1 dakika zaman alır.
Burada uzatma yöntemi:
public static class JavascriptExtension {
public static MvcHtmlString IncludeVersionedJs(this HtmlHelper helper, string filename) {
string version = GetVersion(helper, filename);
return MvcHtmlString.Create("<script type='text/javascript' src='" filename version "'></script>");
}
private static string GetVersion(this HtmlHelper helper, string filename)
{
var context = helper.ViewContext.RequestContext.HttpContext;
if (context.Cache[filename] == null) {
var physicalPath = context.Server.MapPath(filename);
var version = "?v="
new System.IO.FileInfo(physicalPath).LastWriteTime
.ToString("yyyyMMddhhmmss");
context.Cache.Add(physicalPath, version, null,
DateTime.Now.AddMinutes(1), TimeSpan.Zero,
CacheItemPriority.Normal, null);
context.Cache[filename] = version;
return version;
}
else {
return context.Cache[filename] as string;
}
}
}
Ve sonra CSHTML sayfasında:
@Html.IncludeVersionedJs("/MyJavascriptFile.js")
Oluşturulan HTML bu gibi görünür:
<script type='text/javascript' src='/MyJavascriptFile.js?20111129120000'></script>
Diğer Python dosyalarını almak için Na...
Nasıl Python ile şimdiki zaman almak i...
Nasıl bir liste boyutunu almak için...
Nasıl Gıt mevcut şube adı almak için?...
Nasıl MySQL kullanıcı hesaplarının bir...