Tapestry 5
  1. Tapestry 5
  2. TAP5-1366

Tapestry must honor the position of added tags in the <head> relative to the <meta> tags, for IE compatibility

    Details

    • Type: Bug Bug
    • Status: Closed
    • Priority: Major Major
    • Resolution: Fixed
    • Affects Version/s: 5.3, 5.2
    • Fix Version/s: 5.3
    • Component/s: tapestry-core
    • Labels:
      None

      Description

      This problem was discussed with Thiago on mailing list, reference to it:
      http://tapestry.1045711.n5.nabble.com/X-UA-Compatible-amp-IE-9-td4406801.html

      In short, the following was agreed on:
      "Wouldn't Tapestry reordering <head> elements come in the <title>, <meta>,
      everything else order be sufficient?"

      Old 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
          Howard M. Lewis Ship added a comment -

          So, now, whatever new elements Tapestry inserts go just before the first existing such element, or at the end of the <head>. Keeping the rest valid is now up to the template that renders <head> being valid.

          Show
          Howard M. Lewis Ship added a comment - So, now, whatever new elements Tapestry inserts go just before the first existing such element, or at the end of the <head>. Keeping the rest valid is now up to the template that renders <head> being valid.
          Hide
          Hudson added a comment -

          Integrated in tapestry-trunk-freestyle #417 (See https://builds.apache.org/job/tapestry-trunk-freestyle/417/)
          TAP5-1366: Add new <style> tag before first existing <style> tag, or at bottom of <head>
          TAP5-1366: Refactoring and insert <meta> just before existing <meta>, or at end of <head>
          TAP5-1366: Add new method to insert an element before an existing element
          TAP5-1366: Add missing documentation
          TAP5-1366: Minor documentation improvements and reformats

          hlship : http://svn.apache.org/viewcvs.cgi/?root=Apache-SVN&view=rev&rev=1146929
          Files :

          • /tapestry/tapestry5/trunk/tapestry-core/src/test/resources/org/apache/tapestry5/internal/services/existing_head_used_if_present.txt
          • /tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/DocumentLinkerImpl.java

          hlship : http://svn.apache.org/viewcvs.cgi/?root=Apache-SVN&view=rev&rev=1146928
          Files :

          • /tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/DocumentLinkerImpl.java

          hlship : http://svn.apache.org/viewcvs.cgi/?root=Apache-SVN&view=rev&rev=1146926
          Files :

          • /tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/dom/Element.java

          hlship : http://svn.apache.org/viewcvs.cgi/?root=Apache-SVN&view=rev&rev=1146925
          Files :

          • /tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/dom/Element.java

          hlship : http://svn.apache.org/viewcvs.cgi/?root=Apache-SVN&view=rev&rev=1146924
          Files :

          • /tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/DocumentLinkerImpl.java
          Show
          Hudson added a comment - Integrated in tapestry-trunk-freestyle #417 (See https://builds.apache.org/job/tapestry-trunk-freestyle/417/ ) TAP5-1366 : Add new <style> tag before first existing <style> tag, or at bottom of <head> TAP5-1366 : Refactoring and insert <meta> just before existing <meta>, or at end of <head> TAP5-1366 : Add new method to insert an element before an existing element TAP5-1366 : Add missing documentation TAP5-1366 : Minor documentation improvements and reformats hlship : http://svn.apache.org/viewcvs.cgi/?root=Apache-SVN&view=rev&rev=1146929 Files : /tapestry/tapestry5/trunk/tapestry-core/src/test/resources/org/apache/tapestry5/internal/services/existing_head_used_if_present.txt /tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/DocumentLinkerImpl.java hlship : http://svn.apache.org/viewcvs.cgi/?root=Apache-SVN&view=rev&rev=1146928 Files : /tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/DocumentLinkerImpl.java hlship : http://svn.apache.org/viewcvs.cgi/?root=Apache-SVN&view=rev&rev=1146926 Files : /tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/dom/Element.java hlship : http://svn.apache.org/viewcvs.cgi/?root=Apache-SVN&view=rev&rev=1146925 Files : /tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/dom/Element.java hlship : http://svn.apache.org/viewcvs.cgi/?root=Apache-SVN&view=rev&rev=1146924 Files : /tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/DocumentLinkerImpl.java
          Hide
          Bob Harner added a comment -

          Although this issue is now fixed for Tapestry 5.3, Tapestry 5.2 users still need a solution for the IE Compatibility Mode issue. I just wanted to add that I have found success with the simple code described by Wulf Wechsung at http://tapestry.1045711.n5.nabble.com/t5-adding-http-header-td3369097.html – it works perfectly for setting the IE Compatibility Mode header.

          Show
          Bob Harner added a comment - Although this issue is now fixed for Tapestry 5.3, Tapestry 5.2 users still need a solution for the IE Compatibility Mode issue. I just wanted to add that I have found success with the simple code described by Wulf Wechsung at http://tapestry.1045711.n5.nabble.com/t5-adding-http-header-td3369097.html – it works perfectly for setting the IE Compatibility Mode header.

            People

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

              Dates

              • Created:
                Updated:
                Resolved:

                Development