wicket-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Oliver Lieven <oliver.lie...@provantis.de>
Subject Re: Wicket 1.3 rc1 Relative URLs not working properly
Date Wed, 05 Dec 2007 05:24:23 GMT

The preferred way of including Wicket is via a ServletFilter, which also
requires a filter-mapping (see
http://cwiki.apache.org/WICKET/migrate-13.html). 
So you define the mapping in web.xml, e.g.

<filter-mapping>
  <filter-name>MyApp</filter-name>
  <url-pattern>/*</url-pattern>
</filter-mapping>

Relative URLs work if you specify the pattern "/app/*", but fail if it is
"/*" (see this thread).

Regards,
Oliver



Johan Compagner wrote:
> 
> 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 <oliver.lieven@provantis.de>:
>>
>> 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 <jeremy@meetmoi.com> 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 <jcompagner@gmail.com> 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 < jelevy@gmail.com> 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 <jcompagner@gmail.com
>
>> >> 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 <jelevy@gmail.com>
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: users-unsubscribe@wicket.apache.org
>> For additional commands, e-mail: users-help@wicket.apache.org
>>
>>
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
> For additional commands, e-mail: users-help@wicket.apache.org
> 
> 
> 

-- 
View this message in context: http://www.nabble.com/Wicket-1.3-rc1-Relative-URLs-not-working-properly-tf4933399.html#a14165554
Sent from the Wicket - User mailing list archive at Nabble.com.


---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
For additional commands, e-mail: users-help@wicket.apache.org


Mime
View raw message