我在Django有几个项目,偶尔在一个和另一个之间交替.所有这些都有一个/ media/path,由django.views.static.serve提供,它们都有一个/media/css/base.css文件.
问题是,每当我运行一个项目时,对base.css的请求都会返回HTTP 304(未修改),可能是因为时间戳没有改变.但是当我运行另一个项目时,返回相同的304,使浏览器使用前一个项目缓存的文件(因此,使用错误的样式表).
仅供记录,以下是中间件类:
MIDDLEWARE_CLASSES = (
'django.middleware.common.CommonMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.middleware.transaction.TransactionMiddleware',
)
Run Code Online (Sandbox Code Playgroud)
我总是使用默认地址http:// localhost:8000.还有其他解决方案(除了使用不同的端口 - 8001,8002等)?
您是否知道可以通过完全删除ETag和Last-Modifed响应头来阻止浏览器缓存中的文件重新验证以及随后的304响应?
当然,这在Apache中很容易,但在IIS 6中就像泥浆一样清晰.有谁知道如何在IIS中删除这两个头文件?
<VirtualHost *:80>
ServerAdmin webmaster@dev.dom.com
DocumentRoot "C:/Program Files/Apache Software Foundation/Apache2.2/htdocs"
ServerName dev.dom.com
ServerAlias dev.dom.com
ErrorLog "logs/dev.dom.com-error.log"
CustomLog "logs/dev.dom.com-access.log" common
PassEnv CLUSTER
Header always set X-Cluster "%{CLUSTER}e"
</VirtualHost>
Run Code Online (Sandbox Code Playgroud)
这是我的配置.我有一个环境变量,它告诉我我在哪个集群,它在'X-Cluster'中作为标题传递.这在200或404响应上返回正常,但304 Not Modified响应永远不会返回标头,即使它返回其他适当的Apache标头.
如何在304响应期间设置标头?
尝试rails 3.1 RC 4中的基本示例,我收到错误
Compiled app/assets/javascripts/application.js
Served asset /application.js - 304 Not Modified
Run Code Online (Sandbox Code Playgroud)
(与默认索引页面上的.css和asset/rails.png相同)
我的工作流程是:
rails新例子-j
rails g书名:string year:integer
rake db:migrate
我在linux 64bit和win7 32位上都出现了这个错误.我尝试了很多建议,但无法让它发挥作用.有没有人能够管理这个已知问题?任何有效的配置(宝石或资产设置配置的组合)?
[这是我的win7 gemlist:abstract(1.0.0)actionmailer(3.1.0.rc4)actionpack(3.1.0.rc4)activemodel(3.1.0.rc4)activerecord(3.1.0.rc4)activeresource(3.1.0. rc4)activesupport(3.1.0.rc4)arel(2.1.3)bcrypt-ruby(2.1.4 x86-mingw32)builder(3.0.0)bundler(1.0.15)coffee-script(2.2.0)coffee-script -source(1.1.1)erubis(2.7.0)execjs(1.2.0)hike(1.1.0)i18n(0.6.0)jquery-rails(1.0.12)json(1.5.3)mail(2.3.0) )mime-types(1.16)multi_json(1.0.3)polyglot(0.3.1)rack(1.3.0)rack-cache(1.0.2)rack-mount(0.8.1)rack-ssl(1.3.2)rack -test(0.6.0)rails(3.1.0.rc4)railties(3.1.0.rc4)rake(0.9.2)rdoc(3.7)sass(3.1.3)sass-rails(3.1.0.rc.3) )sprockets(2.0.0.beta.10)sqlite3(1.3.3 x86-mingw32)thor(0.14.6)倾斜(1.3.2)树顶(1.4.9)tzinfo(0.3.29)uglifier(1.0.0) win32-open3(0.3.2 x86-mingw32)]
我有一个在Chrome和FF中完美运行的工具.但是对于任何版本的IE浏览器都会显示缓存信息而不是执行Ajax拉取以检索数据.
这是我的设置:
我有循环的标准:
@foreach (var item in Model)
{
<div class="sizeTDCriteria">
@Html.DisplayFor(modelItem => item.Text)
</div>
<div class="sizeTDCriteriaAction">
@Ajax.ImageActionLink(Url.Content("~/Content/images/icons/edit.png"), "Edit Criteria", "AddOrEditCriteria", "Management", new { competencySectionId = ViewBag.competencySectionId, criteriaId = item.Id }, new AjaxOptions { UpdateTargetId = "AddOrEditCriteriaFormContainer" }, new { @class = "iconPosition" })
@Ajax.ImageActionLink(Url.Content("~/Content/images/icons/delete.png"), "Delete Criteria", "RemoveCriteria", "Management", new { criteriaId = item.Id }, new AjaxOptions { UpdateTargetId = "CompetenciesManagementWrapper" }, new { @class = "iconPosition" })
</div>
}
Run Code Online (Sandbox Code Playgroud)
ImageActionLink只是一个帮助器,可以创建一个内部带有图像的ActionLink,我尝试使用普通的ActionLink进行此操作,同时也会出现问题,因此您可以忽略它.我也尝试用一个<img>带有jQuery触发器的plain来改变整个ImageActionLink ,没有任何区别.
当用户点击编辑链接时,它会对"AddOrEditCriteria"执行ajax调用,ActionResult会找到条件,并将PartialView表单显示回div"#AddOrEditCriteriaFormContainer".到目前为止一切顺利,这在所有浏览器中都能正常运行
但是,当我第二次点击该编辑时,不是进行ajax调用,IE只是显示PartialView,而不是它在缓存中的内容,当所有其他浏览器再次正确地提取数据时(这是必需的,因为该视图允许编辑标准,它可能已被其他人同时编辑).
奇怪的部分是IE正在进行调用但不知何故它从未到达服务器,它只是通过使用结果304来使用缓存.您可以从此网络捕获中看到:
URL Method Result …Run Code Online (Sandbox Code Playgroud) 我有一个名为icons.png的 PNG 文件托管在apache服务器上。基本上这个文件是其他小图像元素(CSS Sprite)的组合。当页面第一次加载时,此文件会以正常的200 OK响应加载。
页面加载后;有一些链接悬停在其上触发自定义工具提示。此工具提示将icons.png文件中的部分图像显示为某些HTML 元素的背景图像。
例如 HTML 代码是这样的:
jQuery(".profile").tipTip({delay: 200, defaultPosition: "top", content: "<a href='#' style='width: 32px; height: 32px; display: block; 背景:网址(图像/图标.png) no-repeat -200px -64px'></a>"});
[HTML 文件中还有一些其他地方引用了icons.png ]
现在,每次我将鼠标悬停在链接上时,都会显示工具提示,但同时浏览器会向服务器发送一个 HTTP 请求以获取icons.png文件。来自服务器的响应代码是304 Not Modified。
虽然没有获取文件的内容,但是每次发送标头(大约 166 字节)的开销仍然存在,这反过来又导致了1.5 秒的延迟(我的连接速度很慢)。在这段 1.5 秒的时间里,工具提示元素没有背景图像 & 突然图像突然出现。
这是一些屏幕截图
我正在从 RESTful Web 服务中获取资源,并在响应中添加以下两个标头:
Cache-Control: public, max-age=120
ETag: "3D03F8066015A1438532E049AE5E16EA"
Run Code Online (Sandbox Code Playgroud)
浏览器第一次收到这个响应时,它正确地缓存了 2 分钟。
但是,下次我请求资源时,我的浏览器现在发送了一个IfNoneMatch标头,并按304 Not Modified预期获得了一个标头,以及另一个Cache-Control要缓存 2 分钟的标头。
但是浏览器没有缓存响应。我不断刷新页面,它不断提出请求,因此不断获得304 Not Modified.
这是正常行为吗?
我如何告诉浏览器在获得 2 分钟后重新验证其缓存资源304 Not Modified,并且不再发出任何请求?
etag caching http-headers http-status-code-304 if-none-match
我正在构建一个网络应用程序。以前在我的项目目录中工作的所有外部链接都运行良好,但我注意到昨天每次修改 .css 文件时它根本没有呈现此更改。无论我什至删除整个 .css 文件内容,它实际上都以相同的样式冻结。
这是我运行烧瓶时得到的响应:
* Running on http://127.0.0.1:5000/ (Press CTRL+C to quit)
* Restarting with stat
* Debugger is active!
* Debugger pin code: 230-950-485
127.0.0.1 - - [09/Mar/2017 17:53:09] "GET / HTTP/1.1" 200 -
127.0.0.1 - - [09/Mar/2017 17:53:10] "GET /static/css/main.css HTTP/1.1" 200 -
127.0.0.1 - - [09/Mar/2017 17:53:10] "GET /static/js/main.js HTTP/1.1" 200 -
127.0.0.1 - - [09/Mar/2017 17:53:10] "GET /static/css/main.css HTTP/1.1" 304 -
127.0.0.1 - - [09/Mar/2017 17:53:14] "GET /favicon.ico HTTP/1.1" 404 -
127.0.0.1 - - …Run Code Online (Sandbox Code Playgroud) 我现在是ruby和rails的新手几个月了.我参加了红宝石和铁轨课程,这让我可以创建一个餐馆博客网站.好吧,我最近开始改造网站,为我的朋友.因此,它仅仅是改变图片,措辞等方面的一些东西.当我完全创建另一个博客时,我创建了一个登记页面登录页面,他们需要创建一个登录以创建和发布评论等.一切似乎当我为本地主机服务器运行rails时工作正常,但是当我为站点创建一个登录以确保一切正常时.它不允许我创建一个登录,并在我的rails服务器中不断收到错误.见下文!我搜索和搜索,似乎无法找到解决方案.我唯一真正改变的是一些图片和一些措辞.我没有搞乱编码登录,创建登录代码等.任何帮助都会很好,我将继续搜索.在此之前我得到了一个内容长度错误,所以我关注了这个网站http://theresa.multimediatechnology.at/webrick-warnings-in-ruby-1-9-3/.这似乎解决了这个问题,但现在我得到了以下内容.谢谢!
whitey7@whitey7:~/poe$ rails s
=> Booting WEBrick
=> Rails 3.2.3 application starting in development on
=> Call with -d to detach
=> Ctrl-C to shutdown server
[2012-07-28 08:59:58] INFO WEBrick 1.3.1
[2012-07-28 08:59:58] INFO ruby 1.9.3 (2012-04-20) [x86_64-linux]
[2012-07-28 08:59:58] INFO WEBrick::HTTPServer#start: pid=4690 port=3000
Started GET "/reviews/register" for 127.0.0.1 at 2012-07-28 09:00:04 -0400
Processing by ReviewsController#register as HTML
Rendered reviews/register.html.erb within layouts/application (5.9ms)
Completed 200 OK in 75ms (Views: 73.8ms | ActiveRecord: 0.0ms)
Started GET "/assets/reviews.css?body=1" for 127.0.0.1 …Run Code Online (Sandbox Code Playgroud) 我正在使用jQuery ajax从ASP.Net MVC应用程序中检索json,并且在进行ajax调用时我没有看到预期的结果ifModified = true.
我正在使用jQuery 1.9.1和Chrome版本26.0.1410.64 m
当使用新的浏览器实例并对已经缓存的内容进行初始请求时,即使在ajax配置中设置了ifModified = true,也不会调用服务器来检查缓存状态.在来自同一浏览器实例的后续请求中,(预期)对服务器进行调用,服务器以304响应.
在初始请求中,浏览器网络跟踪显示内容是从状态为200的缓存传递的,即使从未检查过修改日期.Fiddler没有显示任何请求,并且ASP.Net MVC控制器中的断点未被命中.
这是一个错误,还是有办法让它正常工作?如果它是一个错误,它是一个jQuery错误还是Chrome错误?
这是一个简化的ajax调用:
var req = $.ajax({
type: "GET",
dataType: "json",
url: "/JsonTest/GetJson",
ifModified: true,
success: function (data, status, jqXHR) {
if (data === undefined && status == "notmodified") {
$.ajax({
type: this.type,
dataType: this.dataType,
url: this.url,
ifModified: false,
success: this.success,
error: this.error,
complete: this.complete
});
} else {
alert($.toJSON(data));
}
},
error: function (jqXHR, status, error) {
alert(error);
},
complete: function (jqXHR, status) {
} …Run Code Online (Sandbox Code Playgroud)