Tôi gặp sự cố với chủ đề tùy chỉnh mà tôi đã tạo trên trang web thử nghiệm Drupal 9.
- Phiên bản Drupal: 9.3.13
- Máy chủ web Apache 2.4.41 (XAMP win64)
- Phiên bản PHP 8.0.11
- Phiên bản cơ sở dữ liệu 10.4.8-MariaDB
chủ đề tùy chỉnh professional.info.yml:
tên: Chuyên nghiệp
loại: chủ đề
mô tả: Phiên bản Drupal 9 của chủ đề Chuyên nghiệp
core_version_requirement: ^8 || ^9
chủ đề cơ sở: sai
phiên bản: 1.0.0
thư viện:
- phong cách chuyên nghiệp/toàn cầu
- tập lệnh chuyên nghiệp/toàn cầu
vùng:
sidebar_first: 'Thanh bên đầu tiên'
sidebar_second: 'Thanh bên thứ hai'
tiêu đề: 'Tiêu đề'
front_welcome: 'Chào mừng phía trước'
nội dung: 'Nội dung'
content_top: 'Nội dung hàng đầu'
cứu cứu'
chân trang: 'Chân trang'
footer_first: 'Đáy đầu tiên'
footer_second: 'Đáy thứ hai'
footer_third: 'Đáy thứ ba'
Tính năng, đặc điểm:
biểu tượng: đúng
site_name: true
site_slogan: đúng
nút_user_picture: đúng
comment_user_picture: đúng
comment_user_verification: đúng
biểu tượng yêu thích: đúng
main_menu: đúng
secondary_menu: sai
chủ đề tùy chỉnh professional.libraries.yml:
phong cách toàn cầu:
phiên bản: PHIÊN BẢN
css:
chủ đề:
css/style.css: {}
tập lệnh toàn cầu:
phiên bản: PHIÊN BẢN
js:
js/custom.js: {}
js/jquery.flexslider-min.js: {}
js/slide.js: {}
phụ thuộc:
- lõi/jquery
- lõi/drupal
- lõi/drupalSettings
- lõi/drupal.dialog.ajax
Tôi đã lưu tất cả các tệp của chủ đề mới theo quy ước:
/site-root
- chủ đề
- cao thủ
- css
- js
- mẫu
- hệ thống
Vấn đề là các phụ thuộc, bao gồm cả lõi/drupal, hoàn toàn không được áp dụng và ba tệp JavaScript trong tập lệnh toàn cầu
lệnh không được bao gồm trong các trang của trang web, mặc dù cả tệp CSS lõi Drupal cũng như style.css từ chuyên nghiệp: phong cách toàn cầu
đã được bao gồm.
Tôi đã thấy điều đó trên bảng điều khiển công cụ phát triển trình duyệt chrome khi tôi cố gắng hiển thị một trang cơ bản chẳng hạn
nút trong cửa sổ bật lên theo phương thức bằng cách sử dụng ví dụ về Drupal.org:
<ol>
<li><a class="use-ajax" data-dialog-options="{"width":400}" data-dialog-type="modal" href="/xampp/drupal9test/node/9">Basic page displayed in modal dialog. </a></li>
<li><a class="use-ajax" data-dialog-options="{"width":400}" data-dialog-type="dialog" href="/xampp/drupal9test/node/9">Basic page displayed in non modal dialog. </a></li>
<li><a class="edit-button use-ajax" data-dialog-options="{"width":400}" data-dialog-renderer="off_canvas" data-dialog-type="dialog" href="/xampp/drupal9test/node/9">Basic page displayed in a nice off canvas dialog. </a></li>
</ol>
Nút được hiển thị dưới dạng một trang thông thường, không có cửa sổ bật lên phương thức nào được mở. Vì vậy, cả JavaScript và AJAX cốt lõi đều không được áp dụng nếu tôi sử dụng chủ đề tùy chỉnh của mình; khi tôi chuyển sang chủ đề Bartik, mọi thứ đều hoạt động, các phương thức cũng vậy.
Tôi đã thử thêm trực tiếp các thư viện lõi Drupal và AJAX vào professional_pre process_page(&$variables)
trong tệp professional.theme có dòng:
$variables['#attached']['library'][] = 'core/drupal';
$variables['#attached']['library'][] = ' professional/global-scripts';
Tôi thậm chí đã thử thêm thư viện bằng Twig trực tiếp vào mẫu html.html.twig với {{ attachment_library('core/drupal') }}
, nhưng không có thay đổi nào trong số này có tác dụng.
Tất nhiên, mỗi khi tôi thay đổi một số cài đặt, tôi cũng xóa bộ nhớ cache của trang.
Tôi đang làm gì sai? Ai đó có thể cho tôi một giải pháp?