On 13 Dec 2013, at 12:01 PM, Gael Princivalle <gaelprinciva...@gmail.com> wrote:
> I've read a lot of literature about routes.py, it's amazing how it can be 
> powerful and complex.
> However for my simple needs I don't reach to find the solution.
> 
> In my web2py root folder I have this routes.py, using the parameter-based 
> system:
> routers = dict(
>     BASE = dict(
>         domains = {
>             "mydomain1.com" : "myapp1",
>             "mydomain1.com" : "myapp1",
>         }
>     ),
> )
> 
> It works as I expect, when a user wants to go on mydomain1.com in the URL 
> address it have mydomain1.com, and web2py display index from myapp1.
> 
> Now I need to add this:
> When the user ask for mydomain1.com/pdf/file1.pdf, web2py search for this 
> file in myapp1/static/pdf, and the URL address web2py display 
> mydomain1.com/pdf/file1.pdf.
> 
> Is it possible to do it with the parameter-based system, and how ?
> Do I have to add routes in the routes.py from the web2py root or from myapp1 ?

One way, not using the router: make a pdf controller, and in its default 
function, open the file you want to return and:

    return response.stream(file, chunk_size=4096, attachment=True, 
filename='file1.pdf')

You may need to fiddle with content-type or something to control whether the 
pdf gets displayed by the browser.

A more efficient way is to handle the incoming URL directly in Apache (or 
whatever you're using for the front end), and bypass web2py altogether. That's 
generally a good thing to do with static files in general; you just need to 
rewrite the path first.

-- 
Resources:
- http://web2py.com
- http://web2py.com/book (Documentation)
- http://github.com/web2py/web2py (Source code)
- https://code.google.com/p/web2py/issues/list (Report Issues)
--- 
You received this message because you are subscribed to the Google Groups 
"web2py-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to web2py+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.

Reply via email to