Score:1

('ข้อความ/ธรรมดา') ไม่สนับสนุนประเภท MIME ของสไตล์ชีต

ธง cn

เราเพิ่งอัปเกรดจาก Drupal 8 เป็น Drupal 9 และตอนนี้เรามีไฟล์ css บางไฟล์ที่ไม่ทำงานใน Chrome เนื่องจากข้อผิดพลาดด้านล่าง

ปฏิเสธที่จะใช้สไตล์จาก '' เนื่องจากเป็นประเภท MIME ('ข้อความ/ธรรมดา') ไม่ใช่ประเภท MIME ของสไตล์ชีตที่ได้รับการสนับสนุน และเป็นแบบเข้มงวด เปิดใช้งานการตรวจสอบ MIME

ไฟล์ css เหล่านี้อยู่ในไดเร็กทอรีไฟล์ส่วนตัวสำหรับไซต์ ฉันได้ตรวจสอบแล้วว่ามีการโหลด mime_module เนื่องจากฉันเห็นสิ่งนี้ในบันทึกของ apache

โหลดโมดูล mime_module แล้ว ข้ามไป

ฉันยังมี .htaccess ไฟล์เปิดใช้งานโดยใช้ AllowOverride ทั้งหมด ใน httpd.conf

ฉันได้ลองใส่สิ่งต่อไปนี้ใน .htaccess ไฟล์ในไดเร็กทอรีหลักของไฟล์ css ในไฟล์ /etc/httpd/conf.d/drupal.conf, และใน /etc/httpd/conf/httpd.conf แต่ไม่มีอะไรแก้ไขข้อผิดพลาด

เพิ่มประเภทข้อความ/css .css
ข้อความ AddHandler/css .css

และ

AddType 'ข้อความ/css; ชุดอักขระ = UTF-8' css

และ

<FilesMatch "(\.css)$">
    AddType text/css .css
    Header set Content-Type text/css
</FilesMatch>

ทำไม apache ตั้งค่าไม่ถูกต้อง ชนิดของเนื้อหา?

cn flag
คุณเคยไปที่หนึ่งในเส้นทาง CSS โดยตรงหรือไม่ จากประสบการณ์ของฉันข้อผิดพลาดของเบราว์เซอร์มักจะเกิดขึ้นเมื่อ Drupal ส่งคืน HTML 403/404/500 สำหรับเส้นทาง
cn flag
ใช่ เมื่อฉันเข้าชมโดยตรง มันจะโหลด css ในเบราว์เซอร์ของฉัน แต่เป็น `text/plain` เรามีสภาพแวดล้อมของผลิตภัณฑ์ของเราที่ยังคงใช้งาน Drupal 8 และ css กำลังโหลดได้ดี สิ่งนี้เริ่มเกิดขึ้นใน Drupal 9
cn flag
ขออภัย เพิกเฉย ฉันอ่าน `ธรรมดา` เป็น `html` ผิด
4uk4 avatar
cn flag
หากไฟล์ CSS อยู่ในไดเร็กทอรีไฟล์ส่วนตัวจริง ๆ นี่ไม่ใช่ปัญหาของ Apache Drupal ควบคุมการเข้าถึงและให้บริการไฟล์ผ่าน PHP
cn flag
ขอบคุณฉันคิดว่าhttps://drupal.stackexchange.com/a/56967/102670นี้อาจเป็นคำตอบ
4uk4 avatar
cn flag
ไม่รู้. โดยปกติไฟล์ในไดเร็กทอรีส่วนตัวจะได้รับการจัดการและประเภท MIME จะอยู่ในฐานข้อมูลหากไม่มี คุณสามารถใช้ hook_file_download เพื่อจัดการด้วยตนเอง คุณไม่ต้องการคำตอบที่เชื่อมโยงสำหรับประเภท MIME มาตรฐานที่กำหนดไว้แล้วใน Drupal
Score:2
ธง cn

หากไฟล์ CSS อยู่ในไดเร็กทอรีไฟล์ส่วนตัว นี่ไม่ใช่ปัญหาของ Apache Drupal ควบคุมการเข้าถึงและให้บริการไฟล์ผ่าน PHP โดยปกติแล้ว ไฟล์ที่จัดเก็บในไดเร็กทอรีส่วนตัวจะได้รับการจัดการ และระบุประเภท MIME ในตารางฐานข้อมูล file_managed ถ้าไม่คุณสามารถใช้ hook_file_download เพื่อจัดการพวกเขาด้วยตัวคุณเอง:

ใช้ Drupal\Core\StreamWrapper\StreamWrapperManager

/**
 * ใช้ hook_file_download()
 */
ฟังก์ชัน mymodule_file_download($uri) {
  $scheme = StreamWrapperManager::getScheme($uri);
  $target = StreamWrapperManager::getTarget($uri);
  ถ้า ($scheme == 'ส่วนตัว' && substr($target, -4) == '.css') {
    กลับ [
      'ประเภทเนื้อหา' => 'ข้อความ/css',
    ];
  }
}

สิ่งนี้ทำให้ทุกคนสามารถเข้าถึงไฟล์ CSS ในไดเร็กทอรีส่วนตัวและตั้งค่าประเภท MIME

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา