But a mapping shouldnt matter to much. With the filter there should be
no need for a filter mapping like a servlet.

Johan

2007/12/4, Oliver Lieven <[EMAIL PROTECTED]>:
>
> Hi, I encountered this problem a week ago, too, and digged a little into
> code
> and forum. Here's my summary:
>
> the problem seems to be the "/*" filter mapping. If you specify a "/app/*"
> filter mapping, relative URLs work just fine.
>
> In my base-page-class (all my pages are derived from it through Wicket's
> great markup inheritance) my stylesheet is referenced  in the head-section
> by a relative reference like
>
>    <link rel="stylesheet" type="text/css" href="style/myapp.css" />
>
> Checking the generated HTML in the browser (when using "/*" filter mapping)
> shows that this reference is modified by Wicket, so that it now reads
>
>    <link rel="stylesheet" type="text/css" href="../style/myapp.css" />
>
> This is an invalid path and addresses a wrong location.
>
> I digged into the code and found that relative stylesheet and image
> references where
> automatically prepended by "../" by
> ServletWebRequest.getRelativePathPrefixToContextRoot().
>
> This seems to work well for the "/app/*" filter mapping, but fails for "/*"
> (since theres no parent-directory in between to skip)
>
> I currently decided to use the "/app/*" filter mapping.
>
>
> Following workarounds came into my mind:
>
> 1. use of "absolute" references like "/myapp/style/myapp.css".
>    pro:  works, Wicket doesn't modify the absolute paths
>    cons: must code the context-path into all style and image references,
> which is a "NO GO"
>
> 2. use of "/app/*" filter mapping
>    pro : works
>    cons: after having seen the much nicer "/*" mapping I want to use it :-))
>
> 3. in HTML it is possible to add a <base
> href="http://localhost:8080/myapp/"/>
>    line into the head section, which is used to resolve all relative
> references
>    pro : would be great, since it allows the use of relative URLs, and it
> must
>          be configured in just one place (the base-page's head section)
>          would also be great to use when using a front end server (Apache),
>          since references would be resolved to root context
>    cons: since Wicket isn't aware of the <base> tag, relative references
>          are still modified and prepended by "../", so no stylesheets/images
> were found
>
> 4. fix it :-))
>
> Related threads and infos:
> - "is it a bug" - use of /* filter mapping -
> http://www.nabble.com/is-it-a-bug--%28using-beta-4%29-tf4649929.html#a13284326
>
>
> - "Wicket behind a frontend proxy" -
> http://www.nabble.com/Wicket-behind-a-front-end-proxy-t4776982.html
>
> -
> http://cwiki.apache.org/WICKET/best-practices-and-gotchas.html#BestPracticesandGotchas-WicketServletMapping
>
>
>
>
> Jeremy Levy-3 wrote:
> >
> > WICKET-1205
> >
> > On Dec 3, 2007 5:16 PM, Jeremy Levy <[EMAIL PROTECTED]> wrote:
> >
> >> Sorry for now explaining this properly. My application is deployed within
> >> a context of "/1".  The Wicket filter is mapped to "/*" of the app
> >> context.
> >>
> >> The first page of the site has url of
> >> http://www.somehost.com/1/welcomewhere "welcome" is mounted as a
> >> bookmarkable page.  There is a link from the
> >> "welcome" page to a page that isn't bookmarked.  The relative path of the
> >> CSS is incorrect on the page that isn't mounted as a bookmarkable page.
> >> If
> >> I make it bookmarkable the path to the CSS its correct.
> >>
> >> I'm going to create a quickstart project to demonstrate it and log a bug.
> >>
> >> J
> >>
> >>
> >>
> >>
> >>
> >> On Dec 3, 2007 4:40 PM, Johan Compagner <[EMAIL PROTECTED]> wrote:
> >>
> >> > huh? i must be missing something here.
> >> > you say to the first that it works and to the second that it doesn't
> >> > if /1 is the context then would say the first is broken and the second
> >> > should work.
> >> >
> >> > because the first the url is this:
> >> >
> >> > localhost/css/style.css
> >> >
> >> > but thats outside of the context.
> >> >
> >> > the second it seems to be
> >> >
> >> > localhost/1/css/xxx
> >> >
> >> > and that seems ok then
> >> >
> >> > But it is still strange that those 2 pages give different urls because
> >> > both
> >> > should be css/ as far as i see
> >> > because they are on both on the same level.
> >> >
> >> > Please make a jira issue for this
> >> >
> >> > johan
> >> >
> >> >
> >> >
> >> > On Dec 3, 2007 4:08 PM, Jeremy Levy < [EMAIL PROTECTED]> wrote:
> >> >
> >> > > The /1 is the web app context.
> >> > >
> >> > > Change it to ../ breaks it on the pages that were working before.
> >> > >
> >> > > One thing I noticed is that if I deploy this to a server which has
> >> > > mod_proxy
> >> > > set up to hide the /1 it seems to work fine.
> >> > >
> >> > > j
> >> > >
> >> > > On Dec 3, 2007 4:10 AM, Johan Compagner <[EMAIL PROTECTED] >
> >> wrote:
> >> >
> >> > >
> >> > > > and /1/ is your servlyet path?
> >> > > > what happens if you put "../css/style.css" in your markup?
> >> > > >
> >> > > > Because from the normal page that is the css you want i guess?
> >> > > >
> >> > > > johan
> >> > > >
> >> > > >
> >> > > >
> >> > > > On Dec 2, 2007 11:08 PM, Jeremy Levy <[EMAIL PROTECTED]> wrote:
> >> > > >
> >> > > > > I just upgraded to Wicket 1.3, it was remarkably smooth.  It took
> >> > > about
> >> > > > 6
> >> > > > > hours overall.  Every single thing was explained very well in the
> >> > > > > migration
> >> > > > > guide and the things i was looking forward to in 1.3 are working
> >> > > > > perfectly.
> >> > > > >
> >> > > > > The only issue I am having is if I have a page this is not
> >> mounted
> >> > as
> >> > > a
> >> > > > > bookmarkable page the relative paths for my stylesheet and other
> >> > > > resources
> >> > > > > are written out incorrect.  Below are examples for the same page
> >> > if I
> >> > > > > mount
> >> > > > > the page versus not.
> >> > > > >
> >> > > > >
> >> > > > > *Bookmarked Page URL (works):*
> >> > > > > http://localhost/1/gettingstarted
> >> > > > >
> >> > > > > <link rel="stylesheet" type="text/css" href="../css/style.css"/>
> >> > > > >
> >> > > > >
> >> > > > > *Nonbookmarked Page URL (doesn't work):
> >> > > > > *
> >> > > > >
> >> > > > >
> >> > > >
> >> > >
> >> >
> >>
> http://localhost/1/?x=5uwbo6kafiblurBY3bq1UEFwOyXneRheYz2FfwYwMiQAxP5GPHI1HfUHBUhydOCe
> >> > > > >
> >> > > > > <link rel="stylesheet" type="text/css" href="css/style.css"/>
> >> > > > >
> >> > > > >
> >> > > > > *As it's written in my base page html:*
> >> > > > > <link rel="stylesheet" type="text/css" href="css/style.css"/>
> >> > > > >
> >> > > > > Is this something I missed in the migration, or a left over, bug
> >> > > maybe?
> >> > > > >
> >> > > > > Jeremy
> >> > > > >
> >> > > >
> >> > >
> >> >
> >>
> >>
> >
> >
>
> --
> View this message in context:
> http://www.nabble.com/Wicket-1.3-rc1-Relative-URLs-not-working-properly-tf4933399.html#a14150416
> Sent from the Wicket - User mailing list archive at Nabble.com.
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
>
>

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to