Как добавить внешний JS в Magento 2

11

Я хочу добавить следующую ссылку в тег заголовка, но она возвращает ошибку 404. Может ли кто-нибудь помочь мне в этом?

<script  type="text/javascript"  src="https://www.google.com/recaptcha/api.js"></script>
Сивакумар К
источник
Просто следуйте этой статье. inchoo.net/magento-2/… Эти парни потрясающие :)
Ашвини Марвал
Мне нужно через файл макета. Пожалуйста, обратите внимание на его ссылку, а не файл
Sivakumar K

Ответы:

26

Я бы порекомендовал использовать метод сценария, а не текстовый метод, так как другие разработчики его легче понять, он меньше кода и соответствует официальным инструкциям Magento.

Для этого используйте тот же сценарий или ссылку XML, как обычно, но включите src_type="url". Как отмечено в официальных документах

<?xml version="1.0" ?>
<page xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:View/Layout/etc/page_configuration.xsd">
    <head>
        <script src="https://www.google.com/recaptcha/api.js" src_type="url"/>
    </head>
</page>

Результаты

введите описание изображения здесь

Бен Крук
источник
Не знал, что вы можете указать src_type в теге скрипта до сих пор :)
Smartie
Как добавить скрипт с параметром? <script src = "// maps.googleapis.com/maps/api/js?key=APIKEY&libraries=places" src_type = "url" />
Солнечный Хатри
и не принимать с тегом script в magento 2
Солнечный Хатри
4

Если вы добавляете это глобально, самый простой способ - это сделать через админку.

Перейдите в «Магазины»> «Конфигурация»> «Дизайн», а затем на вкладке «Голова HTML» вы можете добавить разные сценарии.

Вы можете добавить его, используя XML, хотя. Например, если вы просто хотите, чтобы он был добавлен на вашу домашнюю страницу, поместите следующее в представление файла макета / frontend / layout / cms_index_index.xml внутри своего пользовательского модуля.

<?xml version="1.0"?>
<page xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:View/Layout/etc/page_configuration.xsd">
    <head>
        <script src="https://www.google.com/recaptcha/api.js" src_type="url"/>
    </head>
</page>

В качестве примечания, если вы можете избежать размещения js в голове, я бы сделал так, как это будет в случае блокировки рендеринга, пока js не будет полностью загружен.

Smartie
источник
Мне нужно только на одной пользовательской странице.
Сивакумар К
Такую информацию полезно знать с самого начала :) Я обновлю свой пост.
Смарти
Тег действия устарел, см. Devdocs.magento.com/guides/v2.0/frontend-dev-guide/layouts/… для получения дополнительной информации.
Бен Крук
Как добавить скрипт с параметром? <script src = "// maps.googleapis.com/maps/api/js?key=APIKEY&libraries=places" src_type = "url" />
Солнечный Хатри