Как добавить внешний 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 не будет полностью загружен.


Мне нужно только на одной пользовательской странице.
Сивакумар К

Такую информацию полезно знать с самого начала :) Я обновлю свой пост.
Смарти

Тег действия устарел, см. 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" />
Солнечный Хатри
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.