web-dev-qa-db-ja.com

Drupal cssファイルを集約しないようにするにはどうすればよいですか?

DrupalのCSSファイルの集約と圧縮を有効にしました。特定のcssファイルを集約および圧縮から除外するにはどうすればよいですか?ありがとう。

7
karthik

ファイルの集約を停止するには、ファイルをロードする drupal_add_css() コマンドにフラグを追加します。これを行うには、CSSが追加されている場所を探し、スタイルの後にarray('preprocess' => FALSE)を追加します。

drupal_add_css('/fonts/fonts-min.css', array('preprocess' => FALSE));

または、外部CSSは決して圧縮されないため、CSSをファイルの絶対URLに変更しても、圧縮されません。

drupal_add_css('http://mysite/css/fonts-min.css');

.infoファイルからインクルードされたCSSを変更する場合は、template.phpに_preprocess_htmlを使用して外部ファイルとして追加するのが最善の方法です。これは このページ の「外部スタイルシートの追加」で詳しく説明されています。

12
John C

私もこの問題を抱えていましたが、drupal_add_cssを使用する代わりに、次のようなページにファイルを添付しました。

function module_preprocess_page(&$variables) {
  $variables['some_element']['#attached'] = array(
    'css' => array(
      'path/to/css/style.css',
    )
  )
}

添付のコアコード を調べているときに、ここでもJohn Cのソリューションを次のように使用できることがわかりました。

function module_preprocess_page(&$variables) {
  $variables['some_element']['#attached'] = array(
    'css' => array(
      'path/to/css/style.css' => array(
        'preprocess' => FALSE,
      )
    )
  )
}
1

Drupal 8でこれを実際にダーティにした方法は、まだ開発段階にあり、変更が多すぎるためです。

THEMENAME.themeファイル:

function THEMENAME_preprocess_html(&$variables) {
  $variables['css_address'] = drupal_get_path('theme', 'themename') . '/cssfile.css';
}

そして、次のようなものをhtml.html.twigテンプレートファイルのヘッドタグに追加します。

<link rel="stylesheet" type="text/css" href="{{ css_address }}">

すぐにもっと良い方法があるでしょう。

0
Pouya Sanooei