[mod_python] Simple Issue, Baffling

David Worley dworley at communityconnect.com
Thu Jan 26 17:00:13 EST 2006


Mine is the same cross browser. I've tested in Firefox 1.5, MSIE 6.0,
and Opera (vWhoCaresItsOpera.0).

I'm surprised yours is browser-dependant.

===============================
David Worley
Senior Front End Developer
dworley at communityconnect.com
=============================== 

-----Original Message-----
From: mod_python-bounces at modpython.org
[mailto:mod_python-bounces at modpython.org] On Behalf Of Jim Steil
Sent: Thursday, January 26, 2006 4:56 PM
To: mod_python at modpython.org
Subject: Re: [mod_python] Simple Issue, Baffling

I have what I think is a similar problem.  My app works just fine with
IE, but when I try to get at it with FireFox, I see my HTML source
instead of my app.  I'm really new to all this, so it may not be
related.  But, I'm watching for a resolution as I'm hoping it will clue
me in to what I'm doing wrong as well.  It happens to me with Firefox
1.5.

    -Jim

Jim Gallacher wrote: 

	David Worley wrote: 
	

		To clarify further: 
		
		http://localhost/some/file/system/directory/style.css is
only ever 
		called from an HTML file, via a <link> tag. 


	I figured you knew that, but one never knows. ;) 
	
	

		The HTML is valid. The HTML 
		page is NOT generated by mod_python. It's just a plain
HTML file in the 
		folder. I created it just for testing dynamically
created CSS files. 
		
		The separate issue of "text/html" content is, indeed,
handled by another 
		handler. The two are unrelated. When text/css content
wouldn't work, I 
		tried something simpler: plain HTML return content. 
		
		Simply put, req.write(xxx) returns content that my
browser does not make 
		use of, whether CSS or HTML, despite the explicit
declaration of 
		req.content_type. The browser just thinks it's text. 
		
		It may be more accurate to say that the server never
returns HTML or 
		CSS, rather than saying that the browser never renders
the file 
		returned. 
		



	Is your handler as simple as you indicated or is there other
stuff going on? Any chance you are calling req.write *before* setting
req.content_type? The first call to req.write triggers the sending of
the response headers, which contains the Content-Type header. Once
you've starting calling req.write changing req.content_type will have no
effect. (Hmm, I wonder if we should actually raise an exception... ) 
	
	I find that tools like wget or netcat are helpful for this sort
of thing since you can dump the response headers as well as the page
content. If you don't have ready access to these programs I'm sure you
could know somthing together from the standard python lib. Sometimes the
simplest problems have the simplest solutions. 
	
	Jim 
	
	

		=============================== 
		David Worley 
		Senior Front End Developer 
		dworley at communityconnect.com 
		=============================== 
		-----Original Message----- 
		From: Jim Gallacher [mailto:jpg at jgassociates.ca] Sent:
Thursday, January 26, 2006 4:15 PM 
		To: David Worley 
		Cc: mod_python at modpython.org 
		Subject: Re: [mod_python] Simple Issue, Baffling 
		
		David Worley wrote: 
		
		

			Hello, all. I'm new to mod_python and somewhat
new to server side 
			programming. 
			
			I've read the documentation, and I can't seem to
find out something 
			relatively simple. 
			
			I'm writing a CSS preprocessor. It's meant to
grab a request for a 
			


		.css 
		
		

			file, process another file and return the result
to the browser. The 
			issue I have is that I can't get the handler to
return content the 
			browser actually uses. 
			
			To clarify, I'm running Apache 2.0, Python 2.4
on Windows XP. 
			
			So with the following httpd.conf entry: 
			
			<Directory /some/file/system/directory> 
			    AddHandler python-program .sss 
			    PythonHandler switch 
			    PythonDebug On 
			</Directory> 
			
			And the following Python code, in switch.py: 
			
			from mod_python import apache 
			
			def handler(req): 
			    req.content_type = "text/css" 
			    req.write("""\ 
			body { background-color: red; }""") 
			    return apache.OK 
			
			This works. It works great. When I request 
	
http://localhost/some/file/system/directory/style.css, I get the body 
			declaration above. BUT the browser doesn't use
it! 
			



		Maybe I don't understand the question but why would it?
The browser only 
		
		uses the stylesheet to render the page when it's
specified in an html <style> tag. 
		
		
		

			I have the same problem when declaring
req.content_type = "text/html": 
			the code is returned properly, but it isn't
rendered as HTML. It's 
			


		just 
		
		

			text, as far as the browser is concerned. 
			



		You got me there, unless you are saying you are getting
the python code as opposed to the html you send with req.write. Are you
writing valid html? Any chance there is a typo in req.content_type =
'text/html'? Are you using a different handler for generating the html? 
		
		It would help if you can clarify your problem a little. 
		
		Jim 
		
		
		
		
		_______________________________________________ 
		Mod_python mailing list 
		Mod_python at modpython.org 
		http://mailman.modpython.org/mailman/listinfo/mod_python

		
		


	_______________________________________________ 
	Mod_python mailing list 
	Mod_python at modpython.org 
	http://mailman.modpython.org/mailman/listinfo/mod_python 
	


-- 
Jim Steil
IT Manager
Quality Liquid Feeds
(608) 935-2345



More information about the Mod_python mailing list