CSSとJavaScriptを<head>に追加するにはどうすればよいですか?


8

BartikのDrupal 8サブテーマを使用して、フロントページのセクションに次のコードを追加します。

誰かがそれを行う方法を手伝ってくれる?この新しい小枝バージョンのテーマでそれを行うための最良の方法は何ですか?page.tplはどこにありますか?

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script>
<script type="text/javascript" src="stepcarousel.js"></script>

回答:


7

あなたTHEME.libraries.yml:

global-styling:
  version: VERSION
  header: true // <--- To the header!!!
  css:
    theme:
      css/mystyle.css: {} // if you want add custom css
  js:
    js/stepcarousel.js: {}
  dependencies:
    - core/drupal // for use drupal.js
    - core/jquery

あなたTHEME.info.yml:

name: THEME
base theme: Bartik
...
libraries:
  - THEME/global-styling
...

キャッシュのクリア

page.tplはどこにありますか?

ここ:core / modules / system / templates / page.html.twig

使用する場合は、次のようにテンプレート内のテーマフォルダーにコピーします。

 THEME
   templates
     page.html.twig

必要なすべてを変更してキャッシュクリアする


6

Drupal 8では、スタイルシートとJavaScriptファイルがライブラリーとして添付されます

yourtheme.libraries.infoをテーマ(またはカスタムモジュール)フォルダーに追加します。

power-slider:
  version: 1.x
  js:
    js/power-slider.js: {}
  css:
    theme:
      css/power-slider.css: {}
  dependencies:
    - core/jquery

次に、ライブラリをレンダー配列にアタッチします。たとえば、これはすべてのページにライブラリを添付します。

function yourtheme_page_attachments_alter(&$page) {
  $page['#attached']['library'][] = 'yourtheme/power-slider';
}

このアプローチには、再利用できるという利点があります。必要なパスを一度定義すると、コード内のさまざまな場所でそれらを再利用できます。

見る:

この回答は、ベルライナーの回答に非常に触発されました。


リンクが壊れている
Yzmir Ramirez

リンクを更新しました。
Neograph734 2017

1

Drupal 8では、CSSやJavaScriptファイルなどのクライアントリソースがレンダリング配列にアタッチされます

$element['#attached'] = array('js' => array(PATH_TO_JS));

where $elementは、出力レンダー配列またはフォーム要素です。

または、*。libraries.infoファイルでライブラリを定義して登録することもできます

power-slider:
  version: 1.x
  js:
    js/power-slider.js: {}
  dependencies:
    - core/jquery

次に、ライブラリを次のようにレンダー配列にアタッチします。

$element['#attached']['library'][] = 'NAMEOFTHEMODULE/power-slider';

後者のアプローチには、再利用可能であるという利点があります。必要なパスを一度定義すると、コード内のさまざまな場所でそれらを再利用できます。


1
このフックを記述した後、hook_library_info()は* .libraries.ymlファイルに置き換えられました。drupal.stackexchange.com/a/109029/12010およびdrupal.org/node/2216195
batigolix

本当に時代遅れだとは思いません。編集が必要です、それだけです。病気にしてみてください
batigolix

私は答えを更新しました
batigolix

@batigolix、素敵な編集。ただし、おそらく、berlinerのコードを変更するのではなく、更新された回答を回答として投稿することをお勧めします(コードの編集が煩わしすぎるため拒否される傾向があります)。
2014年

はい、更新されたバージョンを新しい回答として追加しました。あなたが正しい:私は最初に必要だと思った以上に変えなければならなかった。
batigolix 2014年
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.