On Sep 17, 10:59 am, "Petr Kobalíček" <[EMAIL PROTECTED]>
wrote:
> Hi Wyatt,
>
> my biggest problem with this is that HEAD requests are used by bots,
> so the pylons pages are not indexable at all. This is big problem for
> me and I don't know how to solve this, because we are creating
> ecommerce software using pylons, sqlalchemy and qooxdoo for
> administration. I'm using pylons also for my web and here I found the
> problem:-(
>
> So, any ideas ;-) ?
A workaround is to wrap your WSGI application in a middleware which
changes REQUEST_METHOD from HEAD to GET and which discards the
iterable returned from the application. The middleware should ensure
it still calls close() on the iterable properly though as per WSGI
specification requirements.
Alternatively, you could make it work by hosting with Apache/mod_wsgi
and configuring Apache to enable Apache CONTENT_LENGTH output filter
for the application. This will work as when an Apache output filter is
configured, mod_wsgi will convert a HEAD request to a GET request
before passing it to the WSGI application. This is done so that actual
response content can be passed back to the Apache output filter, which
may want to adjust response headers based on the content. Apache will
discard any response content after any output filters are done with it
and will not send it back to the client.
If this isn't done with Apache/mod_wsgi, the HEAD and GET requests may
not yield the same response headers. The CONTENT_LENGTH output filter
is chosen here purely because it is pretty benign, any Apache output
filter would have been enough to trigger this behaviour.
Graham
> Cheers
> - Petr
>
> 2008/9/17 Wyatt Baldwin <[EMAIL PROTECTED]>:
>
>
>
> > On Sep 16, 3:18 pm, "Petr Kobalíček" <[EMAIL PROTECTED]> wrote:
> >> So it's related to this
> >> ticked:http://pylonshq.com/project/pylonshq/ticket/507
>
> >> I can't solve this bug myself, can anybody help me ? (I'm now using
> >> pylons from mercurial, but without success)
>
> >> Cheers
> >> - Petr
>
> >> 2008/9/16 Petr Kobalíček <[EMAIL PROTECTED]>:
>
> >> > So,
>
> >> > this is pylons bug !
>
> >> > I tried to create plain application and to add hello controller
> >> > (that's in documentation).
>
> >> > The i tried this script:
>
> >> > import httplib
>
> >> > req = httplib.HTTPConnection("localhost:5000")
> >> > req.request("HEAD", "/hello/index")
> >> > res = req.getresponse()
>
> >> > print res.status, res.reason
>
> >> > Ad I got internal server error
>
> >> > Exception: No content returned by controller (Did you remember to
> >> > 'return' it?) in: 'HelloController'
>
> >> > So, what to do, is there any solution ?
>
> >> > Cheers
> >> > - Petr
>
> >> > 2008/9/16 Petr Kobalíček <[EMAIL PROTECTED]>:
> >> >> Hi devs,
>
> >> >> I have problem with HEAD requests that causes me Internal server error.
>
> >> >> The error exception:
>
> >> >> Exception happened during processing of request from ('127.0.0.1', 4948)
> >> >> Traceback (most recent call last):
> >> >> File "c:\program
> >> >> files\python25\lib\site-packages\paste-1.7.1-py2.5.egg\paste\
> >> >> httpserver.py", line 1056, in process_request_in_thread
> >> >> self.finish_request(request, client_address)
> >> >> File "C:\PROGRA~1\Python25\lib\SocketServer.py", line 254, in
> >> >> finish_request
> >> >> self.RequestHandlerClass(request, client_address, self)
> >> >> File "C:\PROGRA~1\Python25\lib\SocketServer.py", line 521, in __init__
> >> >> self.handle()
> >> >> File "c:\program
> >> >> files\python25\lib\site-packages\paste-1.7.1-py2.5.egg\paste\
> >> >> httpserver.py", line 432, in handle
> >> >> BaseHTTPRequestHandler.handle(self)
> >> >> File "C:\PROGRA~1\Python25\lib\BaseHTTPServer.py", line 316, in handle
> >> >> self.handle_one_request()
> >> >> File "c:\program
> >> >> files\python25\lib\site-packages\paste-1.7.1-py2.5.egg\paste\
> >> >> httpserver.py", line 427, in handle_one_request
> >> >> self.wsgi_execute()
> >> >> File "c:\program
> >> >> files\python25\lib\site-packages\paste-1.7.1-py2.5.egg\paste\
> >> >> httpserver.py", line 287, in wsgi_execute
> >> >> self.wsgi_start_response)
> >> >> File "c:\program
> >> >> files\python25\lib\site-packages\paste-1.7.1-py2.5.egg\paste\
> >> >> gzipper.py", line 35, in __call__
> >> >> return self.application(environ, start_response)
> >> >> File "c:\program
> >> >> files\python25\lib\site-packages\paste-1.7.1-py2.5.egg\paste\
> >> >> registry.py", line 350, in __call__
> >> >> app_iter = self.application(environ, start_response)
> >> >> File "c:\program
> >> >> files\python25\lib\site-packages\Beaker-1.0.1-py2.5.egg\beake
> >> >> r\middleware.py", line 74, in __call__
> >> >> return self.app(environ, start_response)
> >> >> File "c:\program
> >> >> files\python25\lib\site-packages\Beaker-1.0.1-py2.5.egg\beake
> >> >> r\middleware.py", line 147, in __call__
> >> >> return self.wrap_app(environ, session_start_response)
> >> >> File "c:\program
> >> >> files\python25\lib\site-packages\Routes-1.9.2-py2.5.egg\route
> >> >> s\middleware.py", line 100, in __call__
> >> >> response = self.app(environ, start_response)
> >> >> File "c:\my\python\pylons\pylons\wsgiapp.py", line 112, in __call__
> >> >> "to 'return' it?) in: %r" % controller.__name__)
> >> >> Exception: No content returned by controller (Did you remember to
> >> >> 'return' it?)
> >> >> in: 'PagePublicController'
>
> >> >> Note, I read every document on internet related to pylons and HEAD,
> >> >> but I think problem is in pylons itself. I tried simple test like
> >> >> this:
>
> >> >> class PagePublicController(base.BaseController):
> >> >> def index_ROOT(self):
> >> >> return ""
>
> >> >> or
>
> >> >> class PagePublicController(base.BaseController):
> >> >> def index_ROOT(self):
> >> >> return []
>
> >> >> and this produces internal server error too.
>
> >> >> here is some interesting stuff, but not solves my problem:
> >> >>http://pylonshq.com/pasties/922
>
> >> >> So my question is, it's a bug or I'm doing something wrong ?
>
> >> >> Cheers
> >> >> - Petr
>
> > I just put a Pylons 0.9.7rc1 app into production and am see a bunch of
> > these errors, too. Mostly, they seem to be coming from user agents
> > other than browsers.
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups
"pylons-discuss" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at
http://groups.google.com/group/pylons-discuss?hl=en
-~----------~----~----~----~------~----~------~--~---