On Mon, Jun 16, 2008 at 2:37 PM, Cliff Wells <[EMAIL PROTECTED]> wrote:
> On Mon, 2008-06-16 at 14:26 -0700, Cliff Wells wrote:
>> On Mon, 2008-06-16 at 13:03 +0200, Wichert Akkerman wrote:
>> > I am trying to figure out what the best practices for dealing with
>> > static resources such as CSS, Javascript and images are. With a
>> > default pylons setup every request goes through two StaticURLParser
>> > instances and files returned by them do not get any caching headers.
>> > This is very practical for development but not ideal for a deployment
>> > For a deployment it would be nice to be able to serve static resources
>> > from apache or nginx.
>> >
>> > How do others do that? Do you use url_for to generate a URL for those
>> > static resources and have that return a non-paster/pylons URL for
>> > deployment environments and use the StaticURLParsers when running in
>> > in development mode? If so, how did you set that up?
>>
>> I usually just setup Nginx to handle whatever location my static content
>> is at.  It doesn't matter if Routes is setup to handle that location as
>> the request never reaches Pylons.
>
> Here's an example:
>
> server {
>    server_name     *.domain.com;
>    listen          1.2.3.4:80;
>
>    location /public/ {
>        root    /var/www/myapp;
>        expires 30d;
>    }
>
>    location / {
>        proxy_pass http://127.0.0.1:8000$request_uri;
>        include    /etc/nginx/proxy.conf; # common settings for proxying
>    }
> }
>
> In this case, any request for, say /public/css/style.css would map to 
> /var/www/myapp/public/css/style.css.
>
> Regards,
> Cliff

I let Nginx handle the URL if such a file exists.  Otherwise, I let
Pylons have a shot at it:

...
    server {
        listen       80;
        server_name  localhost;

        location / {
            # Let Nginx handle static content, but proxy to paster for all the
            # dynamic content.
            root    /.../wwwaiter/wwwaiter/public;
            if (!-e $request_filename) {
                proxy_pass   http://127.0.0.1:5000;
            }
        }

That way I don't have to include "public" in my URLs ;-)

(Of course, including "public" in the URL would probably make life
easier if I needed to move to something more complicated like a CDN.)

-jj

-- 
I, for one, welcome our new Facebook overlords!
http://jjinux.blogspot.com/

--~--~---------~--~----~------------~-------~--~----~
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
-~----------~----~----~----~------~----~------~--~---

Reply via email to