On Mon, Mar 8, 2010 at 5:58 PM, David Precious <davidp@preshweb.co.uk> wrote:
On Monday 08 March 2010 23:21:00 P Kishor wrote:
On Mon, Mar 8, 2010 at 5:04 PM, P Kishor <punk.kish@gmail.com> wrote:
Now, when I point my browser at http://localhost/punkishdance, I get my website, except...
the browser can't retrieve stuff under ~/dance/punkishdance/public, for example, the browser throws a 404 for http://localhost/punkishdance/public/css/grid.css which is at ~/dance/punkishdance/css/style.css
I can't get it directly, and of course, I can't get it included in web page, via main.tt. How do I correct this?
Is the file really in $appdir/css/style.css, or did you mean $appdir/public/css/style.css? (It should be the latter).
I meant the latter... yes, the missing file is $appdir/public/css/style.css
In fact, the browser is unable to get any file directly from under ~/dance/punkishdance
Indeed, the only files which should be automatically served are those in $appdir/public (for instance, ~/dance/punkishdance/public/).
And, the above is exactly what I am not getting.
(And, if you're using the new auto_page feature, Dancer will look for a matching template in the views dir if no route matched.
Which leads me nicely on to...
Which brings me to an associated question. I have the following routes in my app
get '/:p' => sub { pass unless (defined params->{p}); template 'page', { page => _page(params->{p}), name => params->{p} }; };
You should find the auto_page feature ideal for that... with that enabled, creating $appdir/views/mypage.tt means the a request for /mypage will automatically be handled using that view, without you needing to declare any route to match it.
What is the auto_page feature, and how do I use it? In any case, I have my pages in a database, so my logic is, if a page is explicitly requested as a param in path_info, retrieve that from the db and serve it up. If no page is defined, then serve a default page. I have also now discovered that ProxyPass doesn't handle trailing slashes. ProxyPass /punkishdance/ http://localhost:3000/ ProxyPassReverse /punkishdance/ http://localhost:3000/ lets me get to http://localhost/punkishdance/ but not to http://localhost/punkishdance I can define two separate rules, ProxyPass /punkishdance http://localhost:3000/ ProxyPassReverse /punkishdance http://localhost:3000/ and that seems to work, but Apache warns me with the following error [Mon Mar 08 17:34:50 2010] [warn] worker http://localhost:3000/ already used by another worker Seems like the only way around this is to also involve mod_rewrite with RewriteRule ^/punkishdance$ punkishdance/ [R] and, I was hoping to avoid mod_rewrite completely.
-- David Precious <davidp@preshweb.co.uk> http://blog.preshweb.co.uk/ www.preshweb.co.uk/twitter www.preshweb.co.uk/linkedin www.preshweb.co.uk/facebook www.preshweb.co.uk/identica www.lyricsbadger.co.uk
"Programming is like sex. One mistake and you have to support it for the rest of your life". (Michael Sinz) _______________________________________________ Dancer-users mailing list Dancer-users@perldancer.org http://www.backup-manager.org/cgi-bin/listinfo/dancer-users
-- Puneet Kishor http://www.punkish.org Carbon Model http://carbonmodel.org Charter Member, Open Source Geospatial Foundation http://www.osgeo.org Science Commons Fellow, http://sciencecommons.org/about/whoweare/kishor Nelson Institute, UW-Madison http://www.nelson.wisc.edu ----------------------------------------------------------------------- Assertions are politics; backing up assertions with evidence is science =======================================================================