Puncte:1

('text/plain') nu este un tip MIME acceptat pentru foaia de stil

drapel cn

Tocmai am făcut upgrade de la Drupal 8 la Drupal 9, iar acum avem câteva fișiere CSS care nu funcționează în Chrome din cauza erorii de mai jos.

S-a refuzat să aplice stilul de la „” deoarece tipul său MIME ('text/plain') nu este un tip MIME acceptat pentru foaia de stil și este strict Verificarea MIME este activată.

Aceste fișiere CSS se află în directorul de fișiere private pentru site. Am verificat că mime_module este încărcat, așa cum pot vedea acest lucru în jurnalele Apache

modulul mime_module este deja încărcat, se omite

De asemenea, am .htaccess fișiere activate folosind AllowOverride All în httpd.conf

Am încercat să pun următoarele în .htaccess fișier în directorul părinte al fișierelor css, în nostru /etc/httpd/conf.d/drupal.conf, si in /etc/httpd/conf/httpd.conf dar nimic nu remediază eroarea

AddType text/css .css
AddHandler text/css .css

și

AddType 'text/css; set de caractere=UTF-8' css

și

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

De ce apache nu va seta corect tipul de conținut?

drapel cn
Ați vizitat direct una dintre căile CSS? Din experiența mea, această eroare de browser apare de obicei atunci când Drupal returnează un HTML 403/404/500 pentru cale.
drapel cn
Da, când vizitez direct, încarcă css-ul în browserul meu, dar ca „text/plain”. De fapt, mediul nostru de producție încă rulează Drupal 8 și css-ul se încarcă bine acolo. Acest lucru a început să se întâmple în Drupal 9
drapel cn
Îmi pare rău, ignoră-mă, am citit greșit `plain` ca `html`
4uk4 avatar
drapel cn
Dacă fișierele CSS sunt într-adevăr în directorul de fișiere private, aceasta nu este o problemă Apache. Drupal controlează accesul și servește fișierele prin PHP.
drapel cn
Mulțumesc, cred că acest https://drupal.stackexchange.com/a/56967/102670 ar putea fi răspunsul
4uk4 avatar
drapel cn
Nu stiu. În mod normal, fișierele din directorul privat sunt gestionate și tipul MIME este în baza de date.Dacă nu, puteți folosi hook_file_download pentru a-l gestiona pe cont propriu. Nu ar trebui să aveți nevoie de răspunsul legat pentru un tip MIME standard definit deja în Drupal.
Puncte:2
drapel cn

Dacă fișierele CSS se află în directorul de fișiere private, aceasta nu este o problemă Apache. Drupal controlează accesul și servește fișierele prin PHP. În mod normal, fișierele stocate în directorul privat sunt gestionate și tipul MIME este specificat în tabelul bazei de date file_managed. Dacă nu, puteți folosi hook_file_download pentru a le gestiona pe cont propriu:

utilizați Drupal\Core\StreamWrapper\StreamWrapperManager;

/**
 * Implementează hook_file_download().
 */
funcția mymodule_file_download($uri) {
  $scheme = StreamWrapperManager::getScheme($uri);
  $target = StreamWrapperManager::getTarget($uri);
  if ($schemă == 'privat' && substr($ţintă, -4) == '.css') {
    întoarcere [
      „Content-Type” => „text/css”,
    ];
  }
}

Acest lucru permite oricui să acceseze fișierele CSS din directorul privat și, de asemenea, setează tipul MIME.

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.