web-dev-qa-db-ja.com

JavaScriptのテーマパス

作成しているD8テーマのjQueryスクリプトで自分のテーマパスを使用する必要があります。これはdrupalSettings.path.baseURL(その後にテーマへのパスが続く)として使用できることを知っていますが、この変数をJavaScriptで使用できるようにするにはどうすればよいですか? D7の情報はたくさんありますが、D8はそれほど多くありません。

1
JOakland

DrupalSettingsは、任意の形式/ビルド/前処理などでアタッチできます。

何かのようなもの :

function HOOK_preprocess_html(&$variables) {
 $variables['#attached']['drupalSettings']['path']['themeUrl'] = \Drupal::theme()->getActiveTheme()->getPath();
}
3
Dylan

DrupalSettingsの変数をカスタムJavaScriptコードで使用できるようにするには、ライブラリを定義するときに、依存関係としてcore/drupalSettingsを追加する必要があります。

mytheme.libraries.yml

custom-javascript:
  version: 1.x
  js:
    js/custom-javascript.js: {}
  dependencies:
    - core/jquery
    - core/drupalSettings

mytheme.info.yml

libraries:
  - mytheme/custom-javascript

js/custom-javascript.js

(function ($, drupalSettings) {

  var baseURL = drupalSettings.path.baseURL;

})(jQuery, drupalSettings);
2
4k4