现在这花了我一些时间来弄清楚,所以我会自我回答。我想在 Django 视图上禁用一个特定页面的浏览器缓存。如果视图是一个函数,则有一些如何执行此操作的信息,但如果它是一个类,则没有。我不想使用中间件,因为只有一个我不想缓存的特定视图。
我实现了一个REST服务,我正在使用一个网页作为客户端.我的页面有一些javascript函数,它们对REST服务器执行多次相同的http get请求并处理回复.
我的问题是浏览器缓存第一个回复而不是实际发送以下请求..
有没有办法强制浏览器执行所有请求而不缓存?我正在使用Internet Explorer 8.0
谢谢
想知道这可能在.htaccess吗?
我目前正在通过PHP缓存.js,.css和所有图像文件(仅当文件未通过检查filemtime()修改时才提供缓存).
然而有人建议它可以通过.htaccess而且速度更快,所以希望也许有人可以解决一些问题......我环顾四周,找到了各种片段,但没有一个能够覆盖我所追求的内容.
嗨,大家好我在生产模式下运行我的智能应用程序在rails 3.1与mongodb.
我可以看到来自firebug的页面速度有一个明智的问题:
利用静态的浏览器缓存,你可以在上面的图片中看到:

我已经检查了这个修复程序,但没有为我工作:
我想知道如何为我的图像,css和javascript修复此问题,或者如果有这样的宝石.
据我所知:
ExpiresByType text/html "access plus 30 days"
Run Code Online (Sandbox Code Playgroud)
在存储内容模具30天后,将使浏览器缓存请求新鲜内容.
但是:
ExpiresByType text/html "modification plus 30 days"
Run Code Online (Sandbox Code Playgroud)
浏览器缓存将在LAST MODIFIED HEADER的帮助下知道在修改30天之前不要求新鲜内容.
所以我的问题是,为什么不一直使用修改基础,因为它似乎更有意义,或者是否有我遗漏的东西?
我正在使用 Microsoft ASP.NET Web Optimization Framework
您可能知道,它可以将所有JS/CSS连接成单个文件.您可以在config中定义输出文件名,并确保用户浏览器将更新JS/CSS添加参数v=yUVjELgc9foFnhZgsvMfx2DhVRLKWK-w69IoCVhJ_aM1
链接看起来像:
src="/scripts/js/jquery?v=yUVjELgc9foFnhZgsvMfx2DhVRLKWK-w69IoCVhJ_aM1"
Run Code Online (Sandbox Code Playgroud)
我听说并非所有浏览器都支持该参数而不刷新缓存.
我可以确定,所有浏览器都会使用这种方法更新缓存,或者我必须手动生成新的文件名吗?是否有任何表格,我可以看到浏览器,但不支持?
谢谢
.net iis web-optimization browser-cache bundling-and-minification
就我的研究而言,有几个步骤可以确保禁用浏览器缓存.必须设置这些HTTP标头:
Cache-Control: no-cache, no-store, must-revalidate, proxy-revalidate
Pragma: no-cache
Expires: -1
Last-Modified: -1
Run Code Online (Sandbox Code Playgroud)
我发现这可以通过两种方式完成:
方法一:使用web.config文件
<add name="Cache-Control" value="no-store, no-cache,
must-revalidate, proxy-revalidate"/>
<add name="Pragma" value="no-cache" />
<add name="Expires" value="-1" />
<add name="Last-Modified" value="-1" />
Run Code Online (Sandbox Code Playgroud)
方式二:使用_Layout.cshtml中的元标记
<meta http-equiv="Cache-Control" content="no-cache, no-store,
must-revalidate, proxy-revalidate" />
<meta http-equiv="Pragma" content="no-cache" />
<meta http-equiv="Expires" content="-1" />
<meta http-equiv="Expires" content="-1" />
Run Code Online (Sandbox Code Playgroud)
我的问题:哪种方法更好?或者,他们同样可以接受吗?这些都与不同的平台有什么关系?哪些浏览器会尊重哪些标题?
此外,如果有的话,请随意添加我错过的任何内容.
我最近发现,我们Cache-Control:no-cache在所有WebApi响应中都使用了它。我知道在浏览器缓存发生变化之前,您永远都不知道浏览器是否可以缓存json,因此这很重要。
据我所记得,目前还没有现代浏览器在缓存ajax响应,因此不需要此标头。但是我真的很想再次检查一下,并在这里询问一下行为,因为找不到有关该主题的最新文章。
所以问题实际上是:我们是否仍需要设置Cache-Control:no-cacheSPA应用程序的Web api调用,如果是,那么哪些浏览器进行缓存?
ajax cache-control browser-cache asp.net-web-api single-page-application
我遇到一个无辜的请求后,我的客户端被注销了.我控制了两端,经过大量的调试后,我发现发生了以下情况:
304 Not Modified没有任何Authorization标头.据我所知,浏览器不得缓存包含授权的任何请求.尽管如此,
chrome://view-http-cache/http://localhost:10080/api/SearchHost
Run Code Online (Sandbox Code Playgroud)
节目
HTTP/1.1 200 OK
Date: Thu, 23 Nov 2017 23:50:16 GMT
Vary: origin, accept-encoding, authorization, x-role
Cache-Control: must-revalidate
Server: 171123_073418-d8d7cb0 =
x-delay-seconds: 3
Authorization: Wl6pPirDLQqWqYv
Expires: Thu, 01 Jan 1970 00:00:00 GMT
ETag: "zUxy1pv3CQ3IYTFlBg3Z3vYovg3zSw2L"
Content-Encoding: gzip
Content-Type: application/json;charset=utf-8
Content-Length: 255
Run Code Online (Sandbox Code Playgroud)
有趣的服务器头由一些内部信息替换Jetty服务器头(出于安全原因不应该提供) - 忽略它.这就是curl所说的:
< HTTP/1.1 304 Not Modified
< Date: Thu, 23 Nov 2017 23:58:18 GMT
< Vary: origin, accept-encoding, authorization, x-role
< Cache-Control: must-revalidate …Run Code Online (Sandbox Code Playgroud) 我经常更新的Angular应用程序存在问题。
我想避免浏览器缓存,我正在尝试几种替代方法,但是它们都不起作用。
第一件事是我很难测试该解决方案是否有效,因为当我上载新版本时,有时我看到它而不必执行其他操作,而不必刷新页面,而有时候我需要打开控制台并强制刷新清空缓存。
我试图在请求标头中包含Cache-Control:no-cache,如您在图像中所见,但这对我不起作用。
我也尝试过,放入app.component.ts
templateUrl: './app.component.html? v1'
Run Code Online (Sandbox Code Playgroud)
正如我在一些答案中看到的那样,但都没有。
事实是我很绝望,因为当我给出我认为可行的东西时,当我与老板核对时,他不会刷新它:-(,可惜的是,正如我所说的,我不知道该怎么做确实,每次我进入网络时,都要从服务器请求最新版本。
谢谢您的帮助
browser-cache ×10
.htaccess ×2
browser ×2
caching ×2
.net ×1
ajax ×1
angular ×1
apache ×1
asp.net-mvc ×1
django ×1
django-views ×1
http-headers ×1
iis ×1
javascript ×1
mod-expires ×1
rest ×1
security ×1