作成しているD8テーマのjQueryスクリプトで自分のテーマパスを使用する必要があります。これはdrupalSettings.path.baseURL(その後にテーマへのパスが続く)として使用できることを知っていますが、この変数をJavaScriptで使用できるようにするにはどうすればよいですか? D7の情報はたくさんありますが、D8はそれほど多くありません。
DrupalSettingsは、任意の形式/ビルド/前処理などでアタッチできます。
何かのようなもの :
function HOOK_preprocess_html(&$variables) {
$variables['#attached']['drupalSettings']['path']['themeUrl'] = \Drupal::theme()->getActiveTheme()->getPath();
}
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);