ฉันจะเพิ่มเมตาแท็กต่อไปนี้ภายใน<head>...</head>
ส่วนใน Drupal 8 ได้อย่างไร
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
ฉันจะเพิ่มเมตาแท็กต่อไปนี้ภายใน<head>...</head>
ส่วนใน Drupal 8 ได้อย่างไร
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
คำตอบ:
จากแหล่งที่แตกต่างกันฉันพบวิธีที่แตกต่างในการเพิ่มเมตาแท็กใน Drupal 8 ดังนั้นจึงรวบรวมทุกวิธี
ฉันคิดว่ามีการถามคำถามเดียวกันในสเตวอซอฟต์โฟล: เพิ่มเมตาแท็กไว้ใน drupal 8 และถ้าคุณเห็นคำตอบของ@Danielishkoเขาได้ให้รหัสต่อไปนี้
เพียงเพิ่มรหัสต่อไปนี้ในTHEME.theme
ไฟล์ของคุณล้างแคชและคุณจะดี หมายเหตุ: function theme_preprocess_html(&$variables) {...}
ควรมีอยู่ในไฟล์. theme แล้วดังนั้นอย่าสร้างไฟล์ใหม่มิฉะนั้นจะทำให้เกิดข้อผิดพลาด
function theme_preprocess_html(&$variables) {
$xuacompatible = [
'#tag' => 'meta',
'#attributes' => [
'http-equiv' => 'x-ua-compatible',
'content' => 'ie=edge',
],
];
$variables['page']['#attached']['html_head'][] = [$xuacompatible, 'x-ua-compatible'];
}
ภาพที่ส่งออก:
คำถามก็ถูกถามในหัวข้อนี้: วิธีการตั้งค่า / ลบ Drupal 8 เมตาแท็ก
หากคุณอ่านคำถามในลิงค์ที่กล่าวถึงข้างต้น Questioner ได้กล่าวว่าการใช้html.html.twig
ไฟล์เทมเพลตคุณสามารถเพิ่มเมตาแท็กได้โดยตรง<head>....</head>
html.html.twig
ไฟล์ที่คุณสามารถหาได้core/modules/sytem/templates/html.html.twig
คุณสามารถคัดลอกและวางในโฟลเดอร์แม่แบบของชุดรูปแบบของคุณและชุดรูปแบบของคุณจะใช้หนึ่ง
จาก html.html.twig
<!DOCTYPE html>
<html{{ html_attributes }}>
<head>
<head-placeholder token="{{ placeholder_token|raw }}">
<title>{{ head_title|safe_join(' | ') }}</title>
<css-placeholder token="{{ placeholder_token|raw }}">
<js-placeholder token="{{ placeholder_token|raw }}">
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
</head>
<body{{ attributes }}>
{#
Keyboard navigation/accessibility link to main content section in
page.html.twig.
#}
<a href="#main-content" class="visually-hidden focusable">
{{ 'Skip to main content'|t }}
</a>
{{ page_top }}
{{ page }}
{{ page_bottom }}
<js-bottom-placeholder token="{{ placeholder_token|raw }}">
</body>
</html>
ภาพออก:
หมายเหตุ: นี่เป็นตรรกะของฉันเองและพยายามค้นหาการอ้างอิงสำหรับสิ่งนี้ฉันไม่พบการอ้างอิงใด ๆ เกี่ยวกับสิ่งนี้ยกเว้นหนึ่งบรรทัดที่มีให้โดย Questioner ในลิงก์ด้านบน แต่เนื่องจากเราแก้ไขไฟล์เทมเพลตสำหรับการเพิ่มสิ่งอื่น ๆ แท็ก โปรดแสดงความคิดเห็นหากนี่ไม่ใช่วิธีที่ถูกต้องมันจะเป็นประสบการณ์การเรียนรู้สำหรับฉันด้วยขอบคุณ
หากคุณอ้างถึงบทช่วยสอนนี้: การเพิ่มแท็ก HTML ใหม่ในใน Drupal 8เขาได้อธิบายวิธีการเพิ่มแท็กทั่วไปใน Drupal 8 ฉันได้แก้ไขตามความต้องการของคุณ คุณสามารถอ้างถึงบทช่วยสอนนี้: Drupal 8: สร้าง Simple Moduleสำหรับวิธีการพัฒนาโมดูลอย่างง่ายใน Drupal 8 และรหัสต่อไปนี้จะอยู่ในไฟล์ module_name.module ของคุณนั่นแหล่ะ
สำหรับmodule_name.module
ไฟล์
<?php
/**
* Implements hook_page_attachments().
*/
function module_name_page_attachments(array &$page) {
$xuacompatible = [
'#tag' => 'meta',
'#attributes' => [
'http-equiv' => 'x-ua-compatible',
'content' => 'ie=edge',
],
];
$page['#attached']['html_head'][] = [$xuacompatible, 'x-ua-compatible'];
}
ฉันคิดว่าวิธีการและวิธีการที่อธิบายไว้ในตัวเลือกที่ 1 นี้ค่อนข้างเหมือนกัน
ฉันไม่แน่ใจวิธีใช้วิธีนี้ฉันพยายามค้นหา ที่นี่ฉันกำลังพูดถึงเพราะเมื่อจุดของการเพิ่มเมตาแท็กมาโมดูลนี้ป๊อปอัพเสมอ
ฉันคิดว่าวิธีนี้คุณควรใช้ ในคำตอบที่ได้รับการยอมรับเขาได้อธิบายถึงวิธีการของโมดูลและคุณสามารถใช้โมดูลMetatagสำหรับสิ่งนั้น โมดูลนี้มีโมดูลที่ขึ้นต่อกันToken & Ctoolsซึ่งเป็นสิ่งที่พบได้บ่อยมาก ในคำตอบนั้นได้อธิบายขั้นตอนทั้งหมดไว้แล้วดังนั้นฉันไม่ได้พูดถึงที่นี่
เมื่อเพิ่มเนื้อหาลงในตัวควบคุมบล็อกเอนทิตีฟิลด์หรือสถานที่อื่น ๆ ที่คุณไม่จำเป็นต้องสร้างเบ็ด
คุณสามารถเพิ่มเมตาแท็กโดยตรงไปยังรูปแบบใดหรือทำให้องค์ประกอบ ( #theme
, #type
, #markup
):
$build['username'] = [
'#theme' => 'username',
'#account' => \Drupal::currentUser(),
'#attached' => [
'html_head' => [
[
[
'#tag' => 'meta',
'#attributes' => [
'name' => 'foo',
'content' => 'bar',
],
],
'my_module_foo',
],
],
],
];
เมื่อเรนเดอร์แท็กเป็นฟองขึ้นไปถึงระดับหน้าและถูกเพิ่มเข้าไปใน<head>...</head>
ส่วน
ในเบ็ดการประมวลผลล่วงหน้าคุณสามารถแนบไปที่ระดับบนสุดของ$variables
ดู/drupal//a/288989/47547
คุณสามารถและควรใช้ตะขอแก้ไขสำหรับการแนบหน้าในชุดรูปแบบของคุณ
function THEME_page_attachments_alter(array &$page) {
$page['#attached']['library'][] = 'theme_name/main';
}