Just tested, it works, I've already upgraded the production server too :-P
I would suggest to add it (maybe as a comment) to the script.
Thanks, Paolo


2013/1/22 Niphlod <niph...@gmail.com>

> maybe I have a fix .
> Can you please test it ?
> assuming an example of routes.py like
>
> myapp = dict(languages=['en', 'it', 'jp'], default_language='en')
>
>
> this means that navigating to:
>  /myapp/ --> the static files will be referenced as
> web2py_home/applications/myapp/en/static/whatever.css
>  /myapp/it/ --> the static files will be referenced as
> web2py_home/applications/myapp/it/static/whatever.css
>
> however, direct requests to /myapp/static/whatever.css should map to
> web2py_home/applications/myapp/en/static/whatever.css
>
> additionally, if /myapp/it/static/whatever.css is requested, if not found
> web2py_home/applications/myapp/static/whatever.css should be served.
>
> Now, I think that adding this section before the standard one will fix the
> issue
>
> location ~* /(\w+)/(en|it|jp)/static/(.*)$ {
>             alias /home/www-data/web2py/applications/$1/;
>             try_files static/$2/$3 static/$3 =404;
>         }
>
> (en|it|jp) here is the regex matching the "languages" list of the routes
> app's dict .... This will set for the request /myapp/it/static/whatever.css
>   the alias to the web2py_home/applications/myapp/ and then try to serve
> static/it/whatever.css, if not found, it will fall back to a "normal"
> static/whatever.css, and if that one is not found will return a 404.
>
> @Jonathan: please stop me if I did miss something in the routes logic
> @all : seems a simple fix - maybe too simple... please help test it
>
>
> On Tuesday, January 22, 2013 9:14:26 PM UTC+1, Niphlod wrote:
>>
>> got it. can you post the routes.py you're using ?
>>
>> The problem lies in the fact that routes.py is really flexible and
>> adapting that logic using only rewrite or alias statements in nginx is
>> cumbersome.
>> Standing on one feet (i.e. without tests) I'd say that the regex checking
>> static files
>>
>>         location ~* /(\w+)/static/ {
>>             root /home/www-data/web2py/**applications/;
>>             #remove next comment on production
>>             #expires max;
>>         }
>>
>> is catching it as the app name and not the language "trick" . so, for a 
>> request going to /it/app/static/whatever.css is looking into
>>
>> /home/www-data/web2py/**applications/*it/*appname/**static/whatever.css 
>> instead of  ..... (remove the bold part, "*it/*").
>>
>> If you remove those lines web2py will take charge for static files
>> serving, so the issue will be temporarily fixed.
>>
>> I'll try to set up some additional rules to make nginx behave like
>> routes.py, but it will take some time.
>>
>> PS: please mind that the script it's a template.... it's not meant to
>> fullfill every custom installation patterns out there without further
>> tuning.
>> language routing is probably the most difficult out there because for a
>> request
>> /it/appname/static/**whateverfile.css
>> web2py looks into /web2py/appname/static/it/**whateverfile.css and then
>> if not found into /web2py/appname/static/**whateverfile.css (a nice
>> fallback, but hard to map with a simple nginx statement)
>>
>> On Tuesday, January 22, 2013 6:14:55 PM UTC+1, Paolo valleri wrote:
>>>
>>> Hi Massimo, for example, if I visit this traffic.integreen-life.bz.it/**
>>> default/wiki/about<http://traffic.integreen-life.bz.it/default/wiki/about> 
>>> (default is the controller and wiki is the function) it works while
>>> traffic.integreen-life.bz.it/**it/default/wiki/about<http://traffic.integreen-life.bz.it/it/default/wiki/about>the
>>>  application works very well but the static links do not.
>>>
>>> Paolo
>>>
>>>
>>> 2013/1/22 Massimo Di Pierro <massimo....@gmail.com>
>>>
>>>> can you show an example?
>>>>
>>>>
>>>> On Tuesday, 22 January 2013 07:36:39 UTC-6, Paolo valleri wrote:
>>>>
>>>>> Hi all, I've just discovered that the regex used to retrieve the
>>>>> static files doesn't work if I use languages abbreviation in urls.
>>>>> How can we fix this?
>>>>>
>>>>>
>>>>>
>>>>> 2012/12/28 Richard Vézina <ml.richa...@gmail.com>
>>>>>
>>>>>>  Hello,
>>>>>>
>>>>>> I publish a new script that allow deployment of Redmine beside web2py.
>>>>>>
>>>>>> Here : https://groups.google.com/**fo**rum/?fromgroups=#!searchin/**
>>>>>> web**2py/redmine/web2py/**ZqL7Si8Khbo**/Es-wK1yXdgQJ<https://groups.google.com/forum/?fromgroups=#!searchin/web2py/redmine/web2py/ZqL7Si8Khbo/Es-wK1yXdgQJ>
>>>>>>
>>>>>> Notice : After some read, I choose Unicorn over Phussion Passenger.
>>>>>>
>>>>>> Richard
>>>>>>
>>>>>>
>>>>>> On Thu, Dec 20, 2012 at 9:57 AM, Massimo Di Pierro <
>>>>>> massimo....@gmail.com> wrote:
>>>>>>
>>>>>>> please email me the patch of latest file when ready for inclusion.
>>>>>>>
>>>>>>>
>>>>>>> On Thursday, 20 December 2012 03:18:20 UTC-6, Niphlod wrote:
>>>>>>>>
>>>>>>>> perfect, Ccing Massimo on this final one.
>>>>>>>>
>>>>>>>> Il giorno giovedì 20 dicembre 2012 00:16:25 UTC+1, Paolo ha scritto:
>>>>>>>>>
>>>>>>>>> Hi
>>>>>>>>> I was trying with the script that comes with the stable web2py.
>>>>>>>>> with the one on dropbox I problem has gone.
>>>>>>>>>
>>>>>>>>> Paolo
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> 2012/12/19 Niphlod <nip...@gmail.com>
>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> @Simone, an other improvement to the script could be to combine
>>>>>>>>>>> into a single server the 80, and 443 to avoid duplicating 
>>>>>>>>>>> configuration, as
>>>>>>>>>>> stated here :
>>>>>>>>>>> http://nginx.org/en/docs/http/********configuring_https_servers.
>>>>>>>>>>> **html******#single_http_https_server<http://nginx.org/en/docs/http/configuring_https_servers.html#single_http_https_server>
>>>>>>>>>>> I don't had test this.
>>>>>>>>>>>
>>>>>>>>>>> Also, here the code for permanent redirection
>>>>>>>>>>> server {
>>>>>>>>>>>   server_name $hostname;
>>>>>>>>>>>   listen              80;
>>>>>>>>>>>   return 301 http*s*://$hostname$request_uri; # NOTE: I am not
>>>>>>>>>>> sure for $hostname here, because I didn't set hostname for my VM 
>>>>>>>>>>> until now,
>>>>>>>>>>> as in the example (URL below) we can use domainName.com instead if 
>>>>>>>>>>> properly
>>>>>>>>>>> configure in nginx
>>>>>>>>>>> ...
>>>>>>>>>>> }
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>> People may want separate configs for http and https. The script
>>>>>>>>>> objective is to have a working copy of web2py. If we start to follow 
>>>>>>>>>> such
>>>>>>>>>> requests, we'd end up installing postgresql and redis too :P
>>>>>>>>>>
>>>>>>>>>> @Paolo: try the script found at the dropbox link. If the same
>>>>>>>>>> error happens I think we need the log of pip and a hand by Roberto 
>>>>>>>>>> on the
>>>>>>>>>> specific error...
>>>>>>>>>>
>>>>>>>>>> --
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> --
>>>>>>>>>  Paolo
>>>>>>>>>
>>>>>>>>  --
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>
>>>>>>  --
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>
>>>>>
>>>>>
>>>>> --
>>>>>  Paolo
>>>>>
>>>>  --
>>>>
>>>>
>>>>
>>>>
>>>
>>>
>>>
>>> --
>>>  Paolo
>>>
>>  --
>
>
>
>



-- 
 Paolo

-- 



Reply via email to