Do <head> se nevloží metatagy

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
Elethber
Člen | 14
+
0
-

Dobrý den,

snažím se rozchodit plugin na sharování (je jedno jaký, zkoušel jsem jich několik a u všech se vyskytla ta stejná chyba).

V @layout.latte mám

<head>
        {block #headMeta}{/block}
</head>

a v šabloně stránky pak:

{extends '@layout.latte'}
{block #headMeta}

	<meta property="og:title" content="..." />
    <meta property="og:image" content="..." />
    <meta property="og:description" content="..." />
    <meta property="og:type" content="...." />
    <meta property="og:url" content="..." />
    <meta name="og:image" content="..." />
{/block}

Ale stránka https://developers.facebook.com/…g/og/object/ na testování těchto metatagů mi říká, že jsou vloženy až v těle, ne v hlavičce.

Když se podívám zdrojový kód stránky, tak sice vidím metatagy v hlavičce, ale když se podívám na kód, co mi vyhodí výše zmíněný tester, tak tam jsou tagy v těle.

Zkusil jsem také vložit metatagy přímo do hlavičky v @layout.latte a pak vše fungovalo, ale já bych potřeboval mít tagy v poděděné šabloně.

Neví někdo, kde dělám chybu?
Předem děkuji za odpovědi.

jiri.pudil
Nette Blogger | 1032
+
-1
-

V head by asi měl být {include #headMeta} a ve stránce define místo block. Alternativně to jde řešit komponentou

Pavel Macháň
Člen | 282
+
0
-

@layout

<head>
	{ifset #headMeta}
		{include headMeta}
	{/ifset}
</head>
....

šablona sekce

{extends '@layout.latte'}
{block headMeta}
    <meta property="og:title" content="..." />
    <meta property="og:image" content="..." />
    <meta property="og:description" content="..." />
    <meta property="og:type" content="...." />
    <meta property="og:url" content="..." />
    <meta name="og:image" content="..." />
{/block}
....
Jan Mikeš
Člen | 771
+
+1
-

Proc se nevykasles na facebook tester a nezkontrolujes si zdrojovy kod sam, jestli tagy jsou opravdu mimo head?
Neni potreba pouzivat zadne {ifset} a ni {include}. Pokud mas nadefinovany {block} v rodicovi, ten se bere pouze jako vychozi hodnota, pokud jej neprepises jinde. Pokud jej prepises v potomkovi, vlozi se na to misto, kde je v rodicovske sablone definovan.

Zkousel jsem to na prazdnem sandboxu a vysledek je spravne, pouziti mas take spravne, chyba ve vyslednem zdrojovem kodu neni.

Edit: Chtelo by to hledat pricinu toho, proc ti tester presouva meta tagy mimo head, nebo kdy k tomuto presunu dochazi.

Editoval Lexi (7. 8. 2015 12:34)

Elethber
Člen | 14
+
0
-

Tak na tester bych se klidně vykašlal, kdyby to fungovalo. Jak jsem psal, tagy jsem zkontroloval, já je viděl v head, ale ani mi tak nejde o to, kde je vidím já, ale kde je vidí facebook…

Elethber
Člen | 14
+
0
-

Tak chyba byla v jiné části kódu. V hlavičce byl předtím ještě includovaný soubor, kde byl snippet, který automaticky vytvořil div, a to se hlavičce nelíbilo, takže cokoliv dalšího z hlavičky vyhodila a proto se meta tagy dostaly do těla. Všem děkuji za odpovědi!