On Wed, 24 Jul 2013 05:34:17 -0300, Peter Hvass <[email protected]> wrote:

Hello,

Hi!

Further information!

Thanks! Could you please file a JIRA about this? It surely looks like a bug.



A further issue, lines in CSS files that are commented out and contain url declarations
do not escape the URL rewriting code.


For example:

/* url('../font/fontawesome-webfont.svg#fontawesomeregular?v=3.2.1') format('svg'); */


Yields exception with message:
Unable to locate asset 'classpath:META-INF/assets/font-awesome/font/fontawesome-webfont.svg#fontawesomeregular' (the file does not exist).

Thanks,
Peter
----- Original Message -----

From: "Peter Hvass" <[email protected]>
To: "Tapestry users" <[email protected]>
Sent: Wednesday, July 24, 2013 11:21:07 AM
Subject: Tapestry 5.4 url paths in css

Hello,


We're in the process of moving a couple of our projects over to 5.4 (fun, fun times). So far it's been really smooth sailing, our old 5.3 code becoming so much more elegant with the use of RequireJS and properly taking advantage of data attributes.


Now comes the first problem we've run into - whatever code is responsible for CSS URL rewriting is anticipating only one URL declaration per line/rule.


We have a mixin class for including Font Awesome ( http://fortawesome.github.io/Font-Awesome/ ). And we include it in components/pages by going @Mixin private FontAwesome fontAwesome.


It is simply;

@Import(stylesheet = "font-awesome/css/font-awesome.css")
public class FontAwesome {
}


font-awesome folder lives under META-INF/assets/ and contains css/font-awesome.css and font/ with
the various font formats.


Lines 28-34 of font-awesome.css look like this:

@font-face {
font-family: 'FontAwesome';
src: url('../font/fontawesome-webfont.eot?v=3.2.1');
src: url('../font/fontawesome-webfont.eot?#iefix&v=3.2.1') format('embedded-opentype'), url('../font/fontawesome-webfont.woff?v=3.2.1') format('woff'), url('../font/fontawesome-webfont.ttf?v=3.2.1') format('truetype'), url('../font/fontawesome-webfont.svg#fontawesomeregular?v=3.2.1') format('svg');
font-weight: normal;
font-style: normal;
}


So far so good, but now we load the page including FontAwesome mixin, inspecting font-awesome.css
we see that the URLs have been rewritten as follows;

src: url("/proj/asset.gz/meta/8cc12c35/font-awesome/font/fontawesome-webfont.eot?v=3.2.1"); src: url("/proj/asset.gz/meta/8cc12c35/font-awesome/font/fontawesome-webfont.eot?#iefix&v=3.2.1') format('embedded-opentype'), url('../font/fontawesome-webfont.woff?v=3.2.1') format('woff'), url('../font/fontawesome-webfont.ttf?v=3.2.1') format('truetype'), url('../font/fontawesome-webfont.svg#fontawesomeregular?v=3.2.1') format('svg");


Some of them have been rewritten to path using the hash tag for reload/cache stuff, some have been left untouched. Upon looking at the network tab in dev tools, only fontawesome-webfont.eot is downloaded, and it's valid. All the specified font files should be downloaded, however. This is a way of ensuring cross-browser fonts.


When changing this to put each url() on its own src: line, Tapestry correctly rewrites each url() as follows, confirming my suspicions. src: url("/proj/asset.gz/meta/8cc12c35/font-awesome/font/fontawesome-webfont.eot?v=3.2.1");

src: url("/proj/asset.gz/meta/8cc12c35/font-awesome/font/fontawesome-webfont.eot?#iefix&v=3.2.1') format('embedded-opentype"); src: url("/proj/asset.gz/meta/5d616c87/font-awesome/font/fontawesome-webfont.woff?v=3.2.1') format('woff"); src: url("/proj/asset.gz/meta/7222b578/font-awesome/font/fontawesome-webfont.ttf?v=3.2.1') format('truetype"); src: url("/proj/asset.gz/meta/e0edf310/font-awesome/font/fontawesome-webfont.svg") format('svg');


Would be great if this could be fixed in the next alpha (or beta)!


Thanks for all the hard work so far towards 5.4; we are really enjoying using it much more than 5.3!


Peter


--
Thiago H. de Paula Figueiredo

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to