Tapestry 5
  1. Tapestry 5
  2. TAP5-648

Tapestry should be more careful about where, inside the <head>, it adds new elements

    Details

    • Type: Bug Bug
    • Status: Closed
    • Priority: Major Major
    • Resolution: Fixed
    • Affects Version/s: 5.2.0, 5.2.1, 5.2.2, 5.2.3, 5.2.4, 5.1.0.0, 5.1.0.1, 5.1.0.2, 5.1.0.3, 5.1.0.4, 5.1.0.5
    • Fix Version/s: 5.1.0.4
    • Component/s: tapestry-core
    • Labels:
      None

      Description

      As Microsoft documentation states (http://msdn.microsoft.com/en-us/library/cc817574.aspx) the META tags that direct IE8 must be positioned as follows: "The X-UA-compatible header is not case sensitive; however, it must appear in the Web page's header (the HEAD section) before all other elements, except for the TITLE element and other META elements.".

      The most flexible solution would be to honor the order of META and other tags that author has put directly to the template: the place for T5 tags could be indicated with special tag:

      For an example
      <html>
      <head>
      <title>My Web Page</title>
      <meta http-equiv="X-UA-Compatible" content="IE=EmulateIE7" />
      <t:headcontent />
      <link href="dirlang.html" rel="next"/>
      </head>
      .
      .

      If author decides to omit the t:headcontent tag then T5 would not attach any meta or link tags.

      Other solution as Howard indicated in the mailing list would be to just add the T5 specific stuff to the end of the head section.

        Issue Links

          Activity

          Hide
          Ville Virtanen added a comment - - edited

          As of 5.2.4 this is still broken, unfortunately. As MS states, the META tags that direct the rendering of IE must occur before css imports and such. Tapestry includes meta tags after the inclusion of javascript and css, which in this case is plain wrong. Just to make my point, this is again the spec: ".......it must appear in the Web page's header (the HEAD section) before all other elements, except for the TITLE element and other META elements."

          Show
          Ville Virtanen added a comment - - edited As of 5.2.4 this is still broken, unfortunately. As MS states, the META tags that direct the rendering of IE must occur before css imports and such. Tapestry includes meta tags after the inclusion of javascript and css, which in this case is plain wrong. Just to make my point, this is again the spec: ".......it must appear in the Web page's header (the HEAD section) before all other elements, except for the TITLE element and other META elements."
          Hide
          Howard M. Lewis Ship added a comment -

          We can be more careful about where the elements go.

          <script> elements should go before the first <script> element already in the <head>,

          Likewise for <link> tags (for CSS).

          <meta> tags can go last, so as not to interfere with the <meta> tags you are talking about.

          Show
          Howard M. Lewis Ship added a comment - We can be more careful about where the elements go. <script> elements should go before the first <script> element already in the <head>, Likewise for <link> tags (for CSS). <meta> tags can go last, so as not to interfere with the <meta> tags you are talking about.

            People

            • Assignee:
              Howard M. Lewis Ship
              Reporter:
              Ville Virtanen
            • Votes:
              1 Vote for this issue
              Watchers:
              0 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved:

                Development