เปิดการประกาศเนมสเปซกราฟ: HTML พร้อม XMLNS หรือคำนำหน้า


129

ฉันได้เห็นข้อมูลที่ขัดแย้งกันเกี่ยวกับวิธีใช้เนมสเปซ Open Graph ให้ดีที่สุด โดยเฉพาะอย่างยิ่งเว็บไซต์ Open Graph ใช้วิธีการที่แตกต่างกันเล็กน้อยและตัวอย่างของ Facebook Open Graph ใช้วิธีการอื่น ๆ

ตัวอย่างเว็บไซต์ Open Graph (โดยใช้แอตทริบิวต์คำนำหน้า HTML):

<html prefix="og: http://ogp.me/ns#">

เปิดซอร์สโค้ดเว็บไซต์ของกราฟ (ใช้แอตทริบิวต์ HTML XMLNS):

<html xmlns="http://www.w3.org/1999/xhtml" xmlns:og="http://ogp.me/ns#">

เอกสาร Facebook Open Graph (โดยใช้แอตทริบิวต์คำนำหน้า HEAD):

<head prefix="og: http://ogp.me/ns# fb: http://ogp.me/ns/fb#">

เอกสาร Facebook Open Graph # 2 (ใช้แอตทริบิวต์ HTML XMLNS):

<html xmlns="http://www.w3.org/1999/xhtml" xmlns:og="http://ogp.me/ns#" 
      xmlns:fb="https://www.facebook.com/2008/fbml">

วิธีที่แนะนำคืออะไรหรือไม่สำคัญ?


9
ฉันติดตามภายในที่ FB เพื่อรับคำตอบที่ถูกต้องสำหรับคุณ
Simon Cross

7
@SimonCross หลายปีต่อมา (พ.ย. / 2017) เรายังคงรอคำตอบ ... ;)
Helmut Granda

คำตอบ:


73

พวกเขาทั้งหมดเทียบเท่าและจะทำงานทั้งหมด

ใช้คำนำหน้าเนื่องจากเป็นวิธีใหม่ที่แนะนำและมีอักขระน้อยลง

ฉันจะอัปเดตเอกสารทั้งหมดของเราเป็นคำนำหน้า


4
คุณช่วยอธิบายได้ไหมว่าทำไมต้องใช้อะไรเลย? ฉันจะทิ้งคำประกาศนี้ไปได้อย่างไร จะมีอะไรพังไหมถ้าฉันทำแบบนั้น?
andrewrk

3
ไม่มีอะไรจะพังในตอนนี้ แต่การพึ่งพาค่าเริ่มต้นนั้นไม่ค่อยเป็นความคิดที่ดีเมื่อคุณสามารถเปิดเผยได้อย่างชัดเจน หาก 2 ปีข้างหน้าเราเปลี่ยนค่าเริ่มต้นไซต์ของคุณจะพัง นอกจากนี้หากคุณประกาศเนมสเปซของคุณโดยตรงมันจะช่วยตัวแยกวิเคราะห์อื่น ๆ ไม่ใช่แค่ Facebook
Paul Tarjan

1
พอลฉันสังเกตว่าเอกสารไม่ได้รับการอัปเดตตั้งแต่เดือนพฤศจิกายน เหตุใดจึงใช้วิธีใหม่ที่ดีที่สุดหากทั้งสองวิธีนี้จะได้รับการสนับสนุนจากเบราว์เซอร์ที่มีอยู่ทั้งหมดในอนาคตอันใกล้? การนำสิ่งใหม่ ๆ มาใช้หากการสนับสนุนไม่ได้มีอยู่ทั้งหมด (ในบรรดาตัวแทนผู้ใช้ตัวแยกวิเคราะห์ ฯลฯ ) ดูเหมือนจะเป็นความเสี่ยงที่ไม่จำเป็นเว้นแต่จะมีความแตกต่างที่แท้จริงระหว่างทั้งสอง ฉันไม่พบแหล่งข้อมูลใด ๆ ที่ระบุเช่นนั้น
AndrewF

3
@PaulTarjan นี่ ! อันนั้นมีตัวอย่างโดยใช้xmlns. นอกจากนี้ควรprefixใช้บนhtmlหรือheadแท็ก? มันจะดีหรือไม่? แนะนำตัวไหน
its_me

9
โอ้เอกสารเหล่านั้นเก่าแล้ว สิ่งที่เป็นสีเหลืองด้านบนบอกอย่างนั้น เราไม่ต้องการแตะต้องพวกเขาเพราะมีการอ้างอิงมาก ใส่ในprefix headทำงานได้ทั้งสองอย่าง แต่ใกล้กับแท็กจะดีกว่า
Paul Tarjan

4

ฉันลองทำตามคำตอบของ @Paul Tarjan เกี่ยวกับการใช้คำนำหน้าในหัว แต่ฉันมีบาง Internet Explorer 8 ปัญหา ในท้ายที่สุดฉันยังคงใช้วิธี xmlns สำหรับ fb namespace:

<!DOCTYPE HTML>
<html xmlns:fb="http://ogp.me/ns/fb#">
  <head prefix="og: http://ogp.me/ns# object: http://ogp.me/ns/object#">

3

มันไม่สำคัญด้วยซ้ำ RDFa Core Initial Context รับรู้ ogว่าเป็นคำนำหน้าคำศัพท์ที่ใช้กันอย่างแพร่หลาย:

ผู้ใช้ RDFa สามารถใช้คำนำหน้าเหล่านี้ได้โดยไม่ต้องมีภาระผูกพันในการกำหนดคำนำหน้าในโค้ด HTML รายการเดียวกันของคำนำหน้ายังได้รับการกำหนดไว้สำหรับ JSON-LD เป็นบริบท JSON-LDที่ URI http://www.w3.org/2013/json-ld-context/rdfa11; ผู้ใช้ JSON-LD สามารถใช้@contextคีย์กับ URI นั้นเป็นชวเลขเพื่อใช้คำนำหน้าเดียวกันได้

เน้นเพิ่มเพื่อความชัดเจน

ดังนั้นคุณไม่จำเป็นต้องเพิ่มเนมสเปซในเอกสาร HTML ของคุณ ข้อมูลเพิ่มเติมที่นี่


2
<html xmlns="http://www.w3.org/1999/xhtml" prefix="og: http://ogp.me/ns# fb:
http://www.facebook.com/2008/fbml"> <head>

มีวิธีที่ดีที่สุดในการตรวจสอบความถูกต้อง


1

แอตทริบิวต์ prefix / xmlns มีประโยชน์ในการกำหนด short-hand rdf มาจากเชื้อสาย xml ดังนั้นสัญกรณ์ xmlns ควรคาดว่าจะทำงานโดยไม่ขึ้นกับรายละเอียดประเภทหลัก rdfa ขยาย html พร้อมแอตทริบิวต์รวมถึงคำนำหน้าตามที่กำหนดโดยhttp://www.w3.org/TR/rdfa-in-html/#extensions-to-the-html5-syntax อย่างไรก็ตามต้องยึดตามhttp: // dev w3.org/html5/rdfa/rdfa-module.html นอกจากนี้การสนับสนุนเครื่องมือสำหรับ rel = "profile" ตามที่กล่าวไว้นั้นยังรออยู่ ถึงตอนนั้นตัวเลือกคือระหว่างการใช้หลักประเภทที่เก่ากว่าหรือการวาง rdf ด้วยตนเอง: เพื่อวัตถุประสงค์ในการตรวจสอบความถูกต้องหรือรอให้ตัวตรวจสอบและเครื่องมือดังกล่าวตรวจสอบ สถานที่ที่เหมาะสมในการประกาศคือแท็กเปิดองค์ประกอบใด ๆ ซึ่งเป็นบรรพบุรุษของทุกที่ที่จะใช้สัญกรณ์แบบสั้น โดยเฉพาะอย่างยิ่งสำหรับกรณีของคำนำหน้า og กำหนดไว้ล่วงหน้าโดยบริบทเริ่มต้นของ RDFa Core http://www.w3.org/2011/rdfa-context/rdfa-1.1.htmlดังนั้นการข้ามไปพร้อมกันสำหรับประเภทหลักที่ใหม่กว่านั้นไม่เป็นไร และโดยเฉพาะสำหรับ html5 บริบทเริ่มต้นของ RDFa http://www.w3.org/2011/rdfa-context/html-rdfa-1.1จะถูกโหลดหลังจากบริบทเริ่มต้นของ RDFa ที่กล่าวถึงก่อนหน้านี้เท่านั้น

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.