Figured out how I should have been building URLs - use bottle.url or app.get_url.

Why none of their docs or sample code even touches on it, hell if I know. I might see about sending a doc update pull request one day.