我们的调查向我们表明,并非所有浏览器都以统一的方式尊重http缓存指令.
出于安全原因,我们不希望在我们的应用程序某些网页缓存,有史以来,通过Web浏览器.这必须至少适用于以下浏览器:
我们的要求来自安全测试.从我们的网站注销后,您可以按后退按钮查看缓存页面.
我们希望在生产部署中缓存破产,但不要浪费大量时间来确定系统.我的想法是在当前版本号的css和js文件的末尾应用一个参数:
<link rel="stylesheet" href="base_url.com/file.css?v=1.123"/>
Run Code Online (Sandbox Code Playgroud)
两个问题:这会有效地打破缓存吗?这个参数是否会导致浏览器永远不会缓存来自该URL的响应,因为param表明这是动态内容?
我有一个在云服务器上运行的php站点.当我添加新文件css,js或images时,浏览器正在加载存储在缓存中的相同的旧js,css和图像文件.
我的网站有一个doctype和meta标签,如下所示
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<meta http-equiv="Page-Enter" content="blendTrans(Duration=1.0)">
<meta http-equiv="Page-Exit" content="blendTrans(Duration=1.0)">
<meta http-equiv="Site-Enter" content="blendTrans(Duration=1.0)">
<meta http-equiv="Site-Exit" content="blendTrans(Duration=1.0)">
Run Code Online (Sandbox Code Playgroud)
由于上面的doctype和元代码,我加载缓存在浏览器中的相同文件而不是新文件
我们目前正在开发一个新项目,定期更新,我们的客户每天都会使用这些更新.该项目正在使用角度2开发,我们面临缓存问题,即我们的客户没有看到他们的机器上的最新变化.
主要是js文件的html/css文件似乎得到了正确的更新而没有给出太多麻烦.
caching cache-control browser-cache angular2-template angular
我有这个问题,我在我的开发环境中创建的Web应用程序,在我上传到Web服务器后显示不同.
我使用相同的浏览器和同一台机器来查看页面.唯一不同的是"服务器".我正在使用.net 3.5,在我的开发环境中,页面是使用ASP.net开发服务器提供的.在Web服务器上,使用IIS 6.0提供页面.
我只有一个CSS文件包含在"App_Themes/Default"文件夹中,该文件夹用于控制我的应用程序中的所有CSS.
以下是一些不显示相同内容的内容:
1)我有一个可折叠的面板控件,当展开时应该显示在所有其他页面元素之上.在开发环境中,它的行为正确.在Web服务器上,面板在其他元素下滑动.
2)我的元素定义了背景和某个字体大小.在我的开发环境中显示时,文本显示在一行上.但是,在Web服务器上,即使文本大小相同,文本也会被包装.这就好像包含的div以某种方式呈现为"更小".
3)开发环境和Web服务器之间没有固定宽度(因此宽度由按钮文本确定)的按钮宽度不同.服务器上的底部总是更宽.
我检查以确保服务器和开发环境中的machine.config和global web.config中没有对其他CSS元素的引用.
我知道服务器正在从CSS中读取,因为一般来说,它看起来很相似(相同的颜色,背景,字体样式等).这只是大小似乎是关闭和div的分层.
以前有没有人遇到过这个问题?我能找到什么想法?
我在特定服务器上托管了一个网页index.html.我指出example.com了example.com/index.html.因此,当我在index.html中进行更改并保存它,然后尝试打开example.com时,不会反映更改.网页被缓存的原因.
然后我手动刷新页面,因为它加载了新的副本,而不是从缓存,它工作正常.但我不能要求我的客户这样做,他们希望一切都很完美.所以我的问题是,我是如何从服务器而不是从缓存中每次加载文件的技巧或技巧?
PS:我知道CSS,JS和图像文件的技巧,即附加?v=1但不知道如何为index.html执行此操作.
任何帮助,将不胜感激.谢谢!
我的angular应用程序现在不断变化,因为我们的团队现在正在快速更新.
由于缓存,我们的客户并不总是拥有我们代码的最新版本.
那么有一种方法angular可以强制浏览器清除缓存吗?
我有一个单页面应用程序(angular-js),它通过IIS提供.如何防止HTML文件的缓存?需要通过更改index.html或web.config中的内容来实现解决方案,因为无法通过管理控制台访问IIS.
我目前正在调查的一些选项是:
IIS是带有.NET framework 4的7.5版
我一直无法正确地更新Google Maps API v3.我有一个javascript计时器运行应该定期刷新流量层但我没有看到它发生.
据我理解文档,我应该可以说"layer.setMap(null);" 接着是"layer.setMap(map);" 刷新图层(来源:https://developers.google.com/maps/documentation/javascript/reference#TrafficLayer).
我知道正在下载新的地图图块(例如,我可以在Chrome的开发工具的参考资料部分看到它们),但是浏览器没有渲染它们.我可能缺少一些基本的东西.
我尝试了几件事,包括:
有没有办法确保浏览器在不强制重页加载的情况下呈现新图像?
以下是该页面的简化版本(基于Google地图刷新流量图层的答案).
<html>
<head>
<title>Map Testing</title>
<script type="text/javascript" src="https://maps.googleapis.com/maps/api/js?v=3.exp&libraries=weather"></script>
<script src="http://code.jquery.com/jquery-latest.min.js"></script>
<script type="text/javascript">
var map,
trafficLayer,
mapTimerHandle;
$(function() {
initMap();
mapTimerHandle = setInterval(refreshMap, 15000);
});
function refreshMap() {
trafficLayer.setMap(null);
trafficLayer.setMap(map);
}
function initMap() {
var mapDiv = document.getElementById('map');
map = new google.maps.Map(mapDiv, {zoom: 15, center: new google.maps.LatLng(40.7127, -74.0059)});
trafficLayer = new …Run Code Online (Sandbox Code Playgroud) 问题:我有一个包含动态内容的网站,每次用户看到它时都需要重新加载.这包括用户点击另一个站点上的后退按钮并进入需要重新加载的站点时的用例.此事件后,大多数(全部?)浏览器不刷新站点.
我的解决方案(不太合适):http: //www.hunlock.com/blogs/Mastering_The_Back_Button_With_Javascript
window.onbeforeunload = function () {
// This function does nothing. It won't spawn a confirmation dialog
// But it will ensure that the page is not cached by the browser.
}
Run Code Online (Sandbox Code Playgroud)
但它仍然不刷新页面.
什么可以影响/阻止所需行为的想法?对于这个问题,分别有其他解决方案的建议吗?
编辑:
设置如下:
Cache-Control private, must-revalidate, max-age=0
Expires Sat, 26 Jul 1997 05:00:00 GMT
Pragma no-cache
Run Code Online (Sandbox Code Playgroud)
和:
<meta name="cache-control" content="no-cache" />
<meta name="expires" content="0" />
<meta name="pragma" content="no-cache" />
Run Code Online (Sandbox Code Playgroud)
仍然没有成功.
caching ×6
javascript ×4
html ×3
angularjs ×2
css ×2
http-headers ×2
angular ×1
asp.net ×1
google-maps ×1
html5 ×1
http ×1
https ×1
iis ×1
php ×1
webserver ×1