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