Owen, You are correct. The browser was caching it. Thanks, Simon Boyle Owen wrote:
-----Original Message----- From: Simon Hook [mailto:simon.j.hook@xxxxxxxxxxxx] Sent: Donnerstag, 10. März 2005 17:01 To: Boyle Owen Subject: Re: [users@httpd] When an image is replaced in the htdocsdirectory through a cgi script and incorporated into a new html page thenew image does not get displayed Hi OwenPlease keep on list...mod_file_cache is disabled: #LoadModule file_cache_module modules/mod_file_cache.soI get the same problem with either Firefox or IE so while it could be a browser cache problem it seems like and Apache problem.This is not convincing. Both these browsers have extensive caching capabilities. In Firefox, you can clear the cache with Tools -> Options -> Privacy -> Cache -> Clear. Do this between requests to eliminate the browser cache.Also, to investigate further, look in the apache access_log while you request the page. You should see a GET for the HTML page and then another GET for the embedded image. If you don't see a second GET, then the browser is deciding not to request it because it thinks it already has it. If you do see a second GET, look at the response code; if it's 200 then apache fetched the image again, if it's 304 then apache is replying "Not Modified" (which would be bad).I am not sure what you mean by connected directly to the server. Apache is installed on my machine and I am accessing files with a webrowser on my machine i.e.http://mymachine/cgin-bin/noupdate.py so I think I am directly connected to my server.If both browser and server are running on the same physical machine then you're directly connected :-) If your server had been, say, on a remote hosting location and your browser on a desktop inside a corporate LAN, there would almost certainly have been a caching proxy somewhere in between..Any other ideas its a complete showstopper for using Apache!My guess is it is certainly a browser cache problem. You have to convince the browser to re-issue the request no matter what. You could try ExpiresByType (see http://httpd.apache.org/docs-2.0/mod/mod_expires.html#expiresbytype) to do this, eg. ExpiresByType image/png A0 Rgds, Owen BoyleDisclaimer: Any disclaimer attached to this message may be ignored.Thanks, Simon Boyle Owen wrote:an integer.-----Original Message----- From: Simon Hook [mailto:simon.j.hook@xxxxxxxxxxxx] Sent: Donnerstag, 10. März 2005 07:23 To: users@xxxxxxxxxxxxxxxxSubject: [users@httpd] When an image is replaced in the htdocs directory through a cgi script and incorporated into a new html page the new imagedoes not get incorporated.PROBLEM: When an image is replaced in the htdocs directory through a cgi script and incorporated into a new html page the new image does not get incorporated.Hi All,I am trying to write a web app where a variable, passed with a form, is used to generate a plot, which is saved and then displayed as a static image in an html page. I am using the webform from pythonweb and generating the plot with matplotlib. I am using Apache 2.053 under Windows XP. I am keeping it real simple by simply passingthe staticThe whole process works, HOWEVER, when I back page and submit a new integer value which generates a new plot and new static image, the new image does not get displayed, instead the last version ofimage (plot) is displayed (presumably from the cache).Rather, "...presumably from *a* cache..." There are several points where data are cached in a typical browser-server configuration: - in the server: Are you using mod_cache? If so, try CacheDisable the path to the cgi, or just switch off (don't Load it).- in the network: Are the browser and server connected via anetwork? Ifthere are proxies in the route, they will certainly cachethings.. Canyou connect directly?- in the browser: disable caching (thought his will makepages slow tootherwise theload - it'll have to reload images every time To check if it's really the server, use a browser with caching turned off and connected directly to the server.. Rgds, Owen BoyleDisclaimer: Any disclaimer attached to this message may be ignored.If I reload the page with the browser the updated image gets displayedgeneratedprevious plot gets displayed with 2 or 3 re-submits and then eventually an updated one is displayed. It seems like Apache does not recognize a changed image and still uses the first plot I created for 2 or 3 submits or the submit does not force Apache to look for a changed file.I am new to Apache, Pythonweb and MatplotLib although I have done similar stuff with ASP and IIS and some Python work. I have waded through the Apache and Pythonweb documentation and got nowhere. I have tried using the MOD_EXPIRES directive with Apache but this has no effect. I think this is because a new image (PNG) has beenif I had arather than an old one has expired. I cannot see any way with pythonweb forms to load a static html page (i.e. with cgi). I thinkoutput='debug',static html page I could write out maybe I could expire that which would force Apache to load the new image file.I have tried <META HTTP-EQUIV=Refresh CONTENT=1>which refreshes the page every second - this works but who would want it!I have tried <META HTTP-EQUIV=expires CONTENT=0> but this does not work.I have attached the code below, its a rework of one of the examples in pythonweb. Just copy this to the cgi-bin directory and it should work, provided matplotlib is installed. Matplotlib is available from:http://matplotlib.sourceforge.net/ Pythonweb is available from: http://www.pythonweb.orgDespite hours of trying I cannot get this to work, which would seem like a necessity for Pythonweb and Apache. Any help would be much appreciated.Thanks, Simon ---cut here #!d:/apps/Python23/python "The form that will not update" import sys, re, os sys.path.append('../') sys.path.append('../../')import web.error; web.error.handle(handler='browser',actions soformat='html') import web, web.form, web.form.field.basic, web.util import web.form.field.typedfrom pylab import *class ExampleForm(web.form.Form):def setup(self): self.addField(web.form.field.typed.Integer('myval', default=6, required=True)) # The preffered way of adding submit buttons is asSubmit buttons are normally not used. self.addAction('Validate This Form') # Print the HTTP Header print web.header('text/html') # Create a form exampleForm = ExampleForm('form', os.environ['SCRIPT_NAME'], 'get') if len(web.cgi) > 0: # Form submitted # Populate form with the values from get.# Populate the form exampleForm.populate(web.cgi) # Process the form (Validate) if exampleForm.valid(): # Grab the desired value, from the formmyval=exampleForm['myval'].value# Create the plot, saved as a png in the htdocs directorymyarray=[myval,4,9,16] print myarray plot([1,2,3,4], myarray, 'ro') axis([0, 6, 0, 20]) savefig('../htdocs/plot.png')print "<hmtl><body><div align=center><img src=/plot.png alt=theplot></div></body></html>"else:print "<html><head><title>noupdate</title></head><body>\n<h1>Input integer 0-10</h1>%s\n<hr></body></html>"%(exampleForm.html())---end cut ---------------------------------------------------------------------The official User-To-User support forum of the Apache HTTP Server Project.See <URL:http://httpd.apache.org/userslist.html> for more info. To unsubscribe, e-mail: users-unsubscribe@xxxxxxxxxxxxxxxx " from the digest: users-digest-unsubscribe@xxxxxxxxxxxxxxxx For additional commands, e-mail: users-help@xxxxxxxxxxxxxxxxDiese E-mail ist eine private und persönliche Kommunikation. Sie hat keinen Bezug zur Börsen- bzw. Geschäftstätigkeit der SWX Gruppe. This e-mail is of a private and personal nature. It is not related to theexchange or business activities of the SWX Group. Le présente-mail estun message privé et personnel, sans rapport avec l'activitéboursière duGroupe SWX. This message is for the named person's use only. It may contain confidential, proprietary or legally privileged information. Noconfidentiality or privilege is waived or lost by anymistransmission.If you receive this message in error, please notify thesender urgentlyand then immediately delete the message and any copies of itfrom yoursystem. Please also immediately destroy any hardcopies ofthe message.You must not, directly or indirectly, use, disclose,distribute, print,or copy any part of this message if you are not the intendedrecipient.The sender's company reserves the right to monitor all e-mail communications through their networks. Any views expressed in this message are those of the individual sender, except where the message states otherwise and the sender is authorised to state them to be theviews of the sender's company.---------------------------------------------------------------------The official User-To-User support forum of the Apache HTTPServer Project.See <URL:http://httpd.apache.org/userslist.html> for more info. To unsubscribe, e-mail: users-unsubscribe@xxxxxxxxxxxxxxxx " from the digest: users-digest-unsubscribe@xxxxxxxxxxxxxxxx For additional commands, e-mail: users-help@xxxxxxxxxxxxxxxx-- +++++++++++++++++++++++++++++++++++++++++ Simon J. Hook, MSc, PhDJet Propulsion Laboratory MS 183-501Pasadena, CA 91109 Office: 818-354-0974 Fax: 818-354-0966 Email: simon.j.hook@xxxxxxxxxxxx http://asterweb.jpl.nasa.gov http://masterweb.jpl.nasa.gov http://laketahoe.jpl.nasa.gov+++++++++++++++++++++++++++++++++++++++++--------------------------------------------------------------------- The official User-To-User support forum of the Apache HTTP Server Project. See <URL:http://httpd.apache.org/userslist.html> for more info. To unsubscribe, e-mail: users-unsubscribe@xxxxxxxxxxxxxxxx " from the digest: users-digest-unsubscribe@xxxxxxxxxxxxxxxx For additional commands, e-mail: users-help@xxxxxxxxxxxxxxxx
-- +++++++++++++++++++++++++++++++++++++++++ Simon J. Hook, MSc, PhDJet Propulsion Laboratory MS 183-501
Pasadena, CA 91109 Office: 818-354-0974 Fax: 818-354-0966 Email: simon.j.hook@xxxxxxxxxxxx http://asterweb.jpl.nasa.gov http://masterweb.jpl.nasa.gov http://laketahoe.jpl.nasa.gov+++++++++++++++++++++++++++++++++++++++++
--------------------------------------------------------------------- The official User-To-User support forum of the Apache HTTP Server Project. See <URL:http://httpd.apache.org/userslist.html> for more info. To unsubscribe, e-mail: users-unsubscribe@xxxxxxxxxxxxxxxx " from the digest: users-digest-unsubscribe@xxxxxxxxxxxxxxxx For additional commands, e-mail: users-help@xxxxxxxxxxxxxxxx