ICEfaces
  1. ICEfaces
  2. ICE-9433

Compat broken theme image links in CSS

    Details

    • Assignee Priority:
      P1

      Description

      Using both ICEfaces EE 3.3.0.GA and current trunk, PanelTabSet background images that comes from rime.css are broken links. Reproduced with Mojarra 2.2 and 2.1.23, and MyFaces.

      In this file we link to the rime.css file:
      icefaces3/samples/showcase/showcase/src/main/webapp/resources/templates/main-template.xhtml

      Using this component:
      <h:outputStylesheet library="ice.compat" name="rime/rime.css"/>

      Which renders this output:
      <link type="text/css" rel="stylesheet" href="/showcase/javax.faces.resource/rime/rime.css.jsf?ln=ice.compat&amp;v=3_4_0_130712">

      The rime.css image links are of this form:
      '../xmlhttp/css/rime/css-images/Tab_LftTop.gif'

      Which resolve to this in the browser:
      http://localhost:8080/showcase/javax.faces.resource/xmlhttp/css/rime/css-images/Tab_LftTop.gif

        Issue Links

          Activity

          Hide
          Mark Collette added a comment -
          • I know we used to use an ice:outputStyle component before doing the resource ordering or coalescing work. It might be that the rime.css needs different links to support this other way that rime.css is being served (have to support both ways).

          ==> This works:
          <ice:outputStyle href="./xmlhttp/css/rime/rime.css" />

          Which renders:
          <link type="text/css" rel="stylesheet" href="./xmlhttp/css/rime/rime.css">

          • Probably the regular resource handling from the FacesServlet is beating out the mapping to the ResourceServlet ("/xmlhttp/").

          ==> Trying different orderings of the servlets and servlet mappings didn't help. Likely, the ResourceServlet itself is delegating to the "/javax.faces.resource/" resource handling, which is taking precedence, so that the image links containing it will try to be served via regular JSF 2 resource handling, instead of the resource servlet's special handling.

          Show
          Mark Collette added a comment - I know we used to use an ice:outputStyle component before doing the resource ordering or coalescing work. It might be that the rime.css needs different links to support this other way that rime.css is being served (have to support both ways). ==> This works: <ice:outputStyle href="./xmlhttp/css/rime/rime.css" /> Which renders: <link type="text/css" rel="stylesheet" href="./xmlhttp/css/rime/rime.css"> Probably the regular resource handling from the FacesServlet is beating out the mapping to the ResourceServlet ("/xmlhttp/"). ==> Trying different orderings of the servlets and servlet mappings didn't help. Likely, the ResourceServlet itself is delegating to the "/javax.faces.resource/" resource handling, which is taking precedence, so that the image links containing it will try to be served via regular JSF 2 resource handling, instead of the resource servlet's special handling.
          Hide
          Mark Collette added a comment -

          Inside of:
          icefaces3/compat/core/src/main/resources/META-INF/resources/ice.compat/rime/rime.css
          I tested changing all links of the form:
          '../xmlhttp/css/rime/css-images/Tab_LftTop.gif'
          To:
          '../../xmlhttp/css/rime/css-images/Tab_LftTop.gif'

          Testing with main-template.xhtml using either the newer h:outputStylesheet or the older ice:outputStyle, both gave valid image links.

          Show
          Mark Collette added a comment - Inside of: icefaces3/compat/core/src/main/resources/META-INF/resources/ice.compat/rime/rime.css I tested changing all links of the form: '../xmlhttp/css/rime/css-images/Tab_LftTop.gif' To: '../../xmlhttp/css/rime/css-images/Tab_LftTop.gif' Testing with main-template.xhtml using either the newer h:outputStylesheet or the older ice:outputStyle, both gave valid image links.
          Hide
          Mircea Toma added a comment -

          This is a regression caused by the commit for ICE-9338.

          When merging the resources for the rendered views the list of ordered resources build off the dependency metadata. rime.css resource is not defined and thus the merging code skips its addition.
          The fix makes sure to also add the unordered resources at the end of the list of merged resources.

          Show
          Mircea Toma added a comment - This is a regression caused by the commit for ICE-9338 . When merging the resources for the rendered views the list of ordered resources build off the dependency metadata. rime.css resource is not defined and thus the merging code skips its addition. The fix makes sure to also add the unordered resources at the end of the list of merged resources.

            People

            • Assignee:
              Mircea Toma
              Reporter:
              Mark Collette
            • Votes:
              0 Vote for this issue
              Watchers:
              3 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: