Thread Catalyst - prepare_path (0 answers)
Opened by dgw at 2011-09-11 15:02

dgw
 2011-09-11 15:02
#152291 #152291
User since
2010-08-16
27 Artikel
BenutzerIn

user image
Hi,

ich habe eine Catalystanwendung die über http://hosta:porta/myapp_prefix zu erreichen ist. Nun ist dieser Host nicht direkt zu erreichen sondern nur über eine Apacheweiterleitung https://hostb/myapp_prefix/
Damit die die von MyApp generierten Links funktionieren gibt es in lib/MyApp.pm die Funktion prepare_path:
Code (perl): (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
sub prepare_path {
  my $c = shift;

  $c->maybe::next::method( @_ ) ;

  my $base_uri_prefix = $c->config->{base_uri_prefix} ;
  my @path_chunks = split m[/], $c->request->path, -1;
  if (@path_chunks && $path_chunks[0] eq $base_uri_prefix ) {
    shift @path_chunks ;
    my $path = join( '/' , @path_chunks ) || '/' ;
    $c->request->path( $path ) ;
  } else {
    $c->request->uri->path( "$base_uri_prefix/" . $c->request->path ) ;
  }

  my $base = $c->request->base;
  my $tbp = $base->path ;
  $tbp =~ s/hosta:porta/hostb/ ;
  $base->path( $tbp . "$base_uri_prefix/" ) ;
  $base->host( 'hostb' ) ;
  $base->port( undef ) ;
  $base->scheme( 'https' ) ;
  $c->request->base( $base ) ;

  return ;
}


Funktioniert soweit auch gut, Links werden mit c.uri_for( '/foobar' ) korrekt generiert. Verwende ich nun aber für Pager einen Link der mit  [% c.req.uri_with( { page => pager.previous_page } ) %] erzeugt wird, so wird dieser Link nicht für hostb (von aussen erreichbar) erzeugt, sondern für hosta:porta (nicht erreichbar).
Hat jemand eine Idee, wie ich prepare_path ändern muß, damit auch die c.req.uri_with Links stimmen?
Vielen Dank im Voraus,

Daniel

modedit Editiert von GwenDragon: 1) Links in Code-Tags gesetzt.
2) Template-Code in Code-Tags gesetzt

Grund:
Links, die als Beispiel dienen, bitte nicht direkt im Text angeben, wenn sie nicht erreichbar sind!
Code sicherheitshalber auch in Code/Shortcode-Tags setzen!
Bitte auch http://www.perl-community.de/bat/poard/markup_help... lesen.

Last edited: 2011-09-11 15:14:40 +0200 (CEST)

View full thread Catalyst - prepare_path