[Catalyst] offset the URI of an existing Cat App
Octavian Râsnita
orasnita at gmail.com
Tue Jul 7 13:54:39 GMT 2009
From: "Ian Docherty" <catalyst at iandocherty.com>
> Hi
> I have always written Cat Apps so they start at the '/' URI but now I have
> been asked to 'offset' one so that:-
>
> / becomes /foo
> /user becomes /foo/user
> /admin/1 becames /foo/admin/1
Hi,
If using mod_perl, instead of:
<Location />
SetHandler perl-script
PerlResponseHandler MyApp
</Location>
use:
<Location /foo>
SetHandler perl-script
PerlResponseHandler MyApp
</Location>
And the application should work at the new location.
But if in the templates you use urls like:
<a href="/user">...</a>
you need to change them to urls like:
<a href="[% c.uri_for('/user') %]">...</a>
If you use fastcgi, instead of:
FastCgiExternalServer /tmp/myapp.fcgi -socket /tmp/myapp.socket
Alias / /tmp/myapp.fcgi/
you could use:
FastCgiExternalServer /tmp/myapp.fcgi -socket /tmp/myapp.socket
Alias /foo /tmp/myapp.fcgi/
Note! I know these only from theory, because I always needed to use apps
only at "/".
HTH.
Octavian
>
> etc.
>
> I saw the __PACKAGE__->config->{namespace} that could be used but this
> would still require an entry in each of my controllers. e.g.
>
> package MyApp::Controller::Root;
> ...
> __PACKAGE__->config->{namespace} = 'foo';
> ...
>
>
> package MyApp::Controller::Admin;
> ...
> __PACKAGE__->config->{namespace} = 'foo/admin';
> ...
>
>
> etc. which strikes me as very unsatisfactory.
>
> I think I must have missed something. Is there a single point where I can
> make a change that will replicate through all my controllers? Can anyone
> put me right?
>
> Regards
> Ian
>
> _______________________________________________
> List: Catalyst at lists.scsys.co.uk
> Listinfo: http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/catalyst
> Searchable archive:
> http://www.mail-archive.com/catalyst@lists.scsys.co.uk/
> Dev site: http://dev.catalyst.perl.org/
More information about the Catalyst
mailing list