httpd-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Simon Hook <simon.j.h...@jpl.nasa.gov>
Subject Re: [users@httpd] 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 displayed
Date Sat, 12 Mar 2005 19:40:14 GMT
Owen,

You are correct. The browser was caching it.

Thanks, Simon

Boyle Owen wrote:

>  
>
>>-----Original Message-----
>>From: Simon Hook [mailto:simon.j.hook@jpl.nasa.gov]
>>Sent: Donnerstag, 10. März 2005 17:01
>>To: Boyle Owen
>>Subject: Re: [users@httpd] 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 displayed
>>
>>
>>Hi Owen
>>    
>>
>
>Please keep on list...
>
>  
>
>>mod_file_cache is disabled:
>>
>>#LoadModule file_cache_module modules/mod_file_cache.so
>>
>>I 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 Boyle
>Disclaimer: Any disclaimer attached to this message may be ignored. 
>
>  
>
>>Thanks, Simon
>>
>>Boyle Owen wrote:
>>
>>    
>>
>>> 
>>>
>>>      
>>>
>>>>-----Original Message-----
>>>>From: Simon Hook [mailto:simon.j.hook@jpl.nasa.gov]
>>>>Sent: Donnerstag, 10. März 2005 07:23
>>>>To: users@httpd.apache.org
>>>>Subject: [users@httpd] 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.
>>>>
>>>>
>>>>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 passing 
>>>>        
>>>>
>>an integer. 
>>    
>>
>>>>The 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 of 
>>>>        
>>>>
>>the static 
>>    
>>
>>>>image (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 a 
>>>      
>>>
>>network? If
>>    
>>
>>>there are proxies in the route, they will certainly cache 
>>>      
>>>
>>things.. Can
>>    
>>
>>>you connect directly?
>>>
>>>- in the browser: disable caching (thought his will make 
>>>      
>>>
>>pages slow to
>>    
>>
>>>load - 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 Boyle
>>>Disclaimer: Any disclaimer attached to this message may be ignored. 
>>>
>>>
>>> 
>>>
>>>      
>>>
>>>>If I 
>>>>reload the 
>>>>page with the browser the updated image gets displayed 
>>>>        
>>>>
>>otherwise the 
>>    
>>
>>>>previous 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 been 
>>>>        
>>>>
>>generated 
>>    
>>
>>>>rather 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 think 
>>>>        
>>>>
>>if I had a 
>>    
>>
>>>>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.org
>>>>
>>>>Despite 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', 
>>>>        
>>>>
>>output='debug', 
>>    
>>
>>>>format='html')
>>>>import web, web.form, web.form.field.basic, web.util
>>>>import web.form.field.typed
>>>>        
>>>>
>>>>from 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 as 
>>>>        
>>>>
>>actions so 
>>    
>>
>>>>Submit 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 form
>>>>       myval=exampleForm['myval'].value
>>>>              
>>>>       # Create the plot, saved as a png in the htdocs directory
>>>>       myarray=[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@httpd.apache.org
>>>>  "   from the digest: users-digest-unsubscribe@httpd.apache.org
>>>>For additional commands, e-mail: users-help@httpd.apache.org
>>>>
>>>>
>>>>   
>>>>
>>>>        
>>>>
>>>Diese 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 the
>>>exchange or business activities of the SWX Group. Le présent 
>>>      
>>>
>>e-mail est
>>    
>>
>>>un message privé et personnel, sans rapport avec l'activité 
>>>      
>>>
>>boursière du
>>    
>>
>>>Groupe SWX.
>>>
>>>This message is for the named person's use only. It may contain
>>>confidential, proprietary or legally privileged information. No
>>>confidentiality or privilege is waived or lost by any 
>>>      
>>>
>>mistransmission.
>>    
>>
>>>If you receive this message in error, please notify the 
>>>      
>>>
>>sender urgently
>>    
>>
>>>and then immediately delete the message and any copies of it 
>>>      
>>>
>>from your
>>    
>>
>>>system. Please also immediately destroy any hardcopies of 
>>>      
>>>
>>the message.
>>    
>>
>>>You must not, directly or indirectly, use, disclose, 
>>>      
>>>
>>distribute, print,
>>    
>>
>>>or copy any part of this message if you are not the intended 
>>>      
>>>
>>recipient.
>>    
>>
>>>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 the
>>>views of the sender's company. 
>>>
>>>
>>>
>>>---------------------------------------------------------------------
>>>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@httpd.apache.org
>>>  "   from the digest: users-digest-unsubscribe@httpd.apache.org
>>>For additional commands, e-mail: users-help@httpd.apache.org
>>> 
>>>
>>>      
>>>
>>-- 
>>
>>+++++++++++++++++++++++++++++++++++++++++
>>Simon J. Hook, MSc, PhD
>>Jet Propulsion Laboratory  
>>MS 183-501
>>Pasadena, CA 91109
>>Office: 818-354-0974
>>Fax: 818-354-0966
>>Email: simon.j.hook@jpl.nasa.gov
>>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@httpd.apache.org
>   "   from the digest: users-digest-unsubscribe@httpd.apache.org
>For additional commands, e-mail: users-help@httpd.apache.org
>  
>

-- 

+++++++++++++++++++++++++++++++++++++++++
Simon J. Hook, MSc, PhD
Jet Propulsion Laboratory  
MS 183-501
Pasadena, CA 91109
Office: 818-354-0974
Fax: 818-354-0966
Email: simon.j.hook@jpl.nasa.gov
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@httpd.apache.org
   "   from the digest: users-digest-unsubscribe@httpd.apache.org
For additional commands, e-mail: users-help@httpd.apache.org


Mime
View raw message