On Tue, 2008-01-22 at 19:37 -0800, Mike Orr wrote:
> You'll have to set up a handler for each file/directory in public if you want
> to
> do this, or put everything in a subdirectory of public which will appear in
> the
> URL (public/static/images -> /static/images). Unless there's a way to make
> Apache fall back to the application if a static file doesn't exist.
>
> It's not well documented how to do this. You're not actually setting
> up a handler for the static files. You're setting up a handler for
> the Pylons app and then disabling it for certain sub-URLs. With
> mod_proxy it would be:
>
> DocumentRoot /myapp/myapp/public
> ProxyPass / http://127.0.0.1:8080/
> ProxyPass /images !
>
> With mod_scgi you'd do something like:
>
> <Location /images>
> SCGIHandler Off
> </Location>
>
> Each handler has a different way to disable itself. There may be some
> that can't be disabled at all.
I don't use Apache, but here's what I would do in Nginx:
server {
listen 1.2.3.4:80;
server_name www.example.com;
error_page 404 /404; # goes to Pylons app
location / {
proxy_pass http://127.0.0.1:8000$request_uri;
include /etc/nginx/proxy.conf;
}
# static files location
location ~* ^/(static|images|javascript|js|css|flash|media|
downloads)/$ {
root /path/to/public;
}
}
and my directory layout just looks like:
/path/to/public/static
/path/to/public/images
etc.
If you wanted to preserve the requested URI to pass to your controller,
you could use a conditional redirect instead:
server {
listen 1.2.3.4:80;
server_name www.example.com;
location / {
proxy_pass http://127.0.0.1:8000$request_uri;
include /etc/nginx/proxy.conf;
}
# static files location
location ~* ^/(static|images|javascript|js|css|flash|media|downloads)/$ {
root /path/to/public;
if (!-f $request_filename) {
rewrite (.*) /404?page=$request_uri redirect;
}
}
}
Personally, I let Nginx handle 404's for the most part. Bots (most of
them checking for hackable versions of PHP apps it seems) can generate a
ton of 404's.
Hope that helps someone.
Regards,
Cliff
--~--~---------~--~----~------------~-------~--~----~
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
-~----------~----~----~----~------~----~------~--~---