Cómo agregar js externos en Magento 2

11

Quiero agregar el siguiente enlace en la etiqueta de la cabeza, pero devuelve el error 404. ¿Puede alguien ayudarme con esto?

<script  type="text/javascript"  src="https://www.google.com/recaptcha/api.js"></script>
Sivakumar K
fuente
Solo sigue este artículo. inchoo.net/magento-2/… Esos tipos son
geniales
necesito a través del archivo de diseño. por favor observe que es un enlace y un archivo no
Sivakumar K

Respuestas:

26

Recomiendo usar el método de script en lugar del método de texto, es más fácil de entender para otros desarrolladores, es menos código y cumple con las instrucciones oficiales de Magento.

Para hacer esto, use el mismo script o XML de enlace normal, pero incluya src_type="url". Como se señala en los documentos oficiales

<?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>

Resultados

ingrese la descripción de la imagen aquí

Ben Crook
fuente
No sabía que podía especificar un src_type en la etiqueta del script hasta ahora :)
Smartie
¿Cómo agregar script con parámetro? <script src = "// maps.googleapis.com/maps/api/js?key=APIKEY&libraries=places" src_type = "url" />
Sunny Khatri
y no aceptar con etiqueta de script en magento 2
Sunny Khatri
4

Si está agregando esto globalmente, la forma más fácil es hacerlo a través del área de administración.

Vaya a Tiendas> Configuración> Diseño y luego en la pestaña Cabecera HTML puede agregar varios scripts.

Sin embargo, puedes agregarlo usando xml. Por ejemplo, si solo desea que se agregue a su página de inicio, coloque lo siguiente en la vista del archivo de diseño / frontend / layout / cms_index_index.xml dentro de su módulo personalizado.

<?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>

Como nota al margen, si puede evitar poner el js en la cabeza, lo haría, ya que esto representaría un bloqueo de procesamiento hasta que el js se haya descargado por completo.

Smartie
fuente
Solo necesito en una página personalizada.
Sivakumar K
Ese tipo de información es útil para saber al principio :) Actualizaré mi publicación.
Smartie
La etiqueta de acción se ha depreciado; consulte devdocs.magento.com/guides/v2.0/frontend-dev-guide/layouts/… para obtener más información.
Ben Crook
¿Cómo agregar script con parámetro? <script src = "// maps.googleapis.com/maps/api/js?key=APIKEY&libraries=places" src_type = "url" />
Sunny Khatri