Magento 2 - Bagaimana cara menambahkan file css khusus ke kepala?


8

Di Magento 1.x, saya bisa menambahkan file CSS ke kepala menggunakan helper seperti kode di bawah ini.

<reference name="head">
    <action method="addCss"><stylesheet helper="module/helperclass/helperfunction"/></action>
</reference>

Adakah yang tahu bagaimana melakukan ini di Magento 2?


apakah Anda menyelesaikan ini? atau apakah Anda memiliki alternatif tentang ini. beri tahu saya jika Anda menemukan beberapa
— Dev

1
maaf, saya belum punya solusi. sekarang, saya menambahkan kode ini <link rel = "stylesheet" type = "text / css" media = "all" href = "<? php echo $ _helper-> getCSSFile ()?>"> ke "after.body.start "wadah.
— Mike

Saya menemukan solusinya, silakan periksa jawaban di bawah ini.
— Mike

Jawaban:


9

Anda tidak perlu pembantu, Anda dapat menggunakan kode di bawah ini di tata letak Anda:

<head>
    <css src="Namespace_YourModule::css/styles.css"/>
</head>

Karena saya perlu menambahkan file css dinamis.
— Mike

Bisakah Anda memberikan contoh src untuk modul kontak jika saya ingin menambahkan file style.css di halaman dengan formulir kontak? Saya mencoba <css src = "Magento_Contact :: css / styles.css" /> tetapi tidak berhasil ... Saya kehilangan aliran magento termasuk rupanya. File styles.css ada di dalam module-contact / view / css / folder ...
— Lachezar Raychev

Halo @LachezarRaychev, jika pegangan Anda di frontend, Anda perlu membuat styles.cssfile ../view/frontend/css/style.css. Dengan backend, Anda perlu membuat styles.cssfile dalam ../view/adminhtml/css/style.css.
— Thao Pham

mencobanya dan letakkan # contact-form {border: 1px solid blue! important; } tidak berfungsi ... file dalam tampilan / frontend / css / styles.css dan <css src = "Magento_Contact :: css / styles.css" /> ada di contact_index_index.xml di <head> </head> elemen .... tidak ada batas biru di sekitar bentuk ... benar-benar aneh ..
— Lachezar Raychev

Nvm ... saya harus membuat folder Magento_Contact di static / frontend / Magento / luma / sv_SE dan di dalam buatlah css / folder dan di dalamnya masukkan file styles.css ... sekarang berfungsi. Saya hanya berpikir bahwa dengan cara itu akan mengimpor bentuk file di dalam module-contact / view / frontend / css / folder ...
— Lachezar Raychev

8

Coba langkah ini.

  1. Buat file css di bawah direktori ini. aplikasi / desain / antarmuka / Vendor / tema / web / css / customcss.css
  2. Buat file default_head_blocks.xml jika tidak ada di jalur aplikasi ini / desain / antarmuka / Vendor / tema / Magento_Theme / tata letak / default_head_blocks.xml

Masukkan kode di bawah ini di default_head_blocks.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>
        <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1.0, user-scalable=no"/>
        <css src="css/customcss.css" />
    </head>
</page>

Semoga ini bisa membantu Anda !!


Apakah saya perlu menjalankan perintah kasar setelah melakukan ini?
— TheBlackBenzKid

1
nama file css dinamis. sekarang, saya menambahkan kode ini <link rel = "stylesheet" type = "text / css" media = "all" href = "<? php echo $ _helper-> getCSSFile ()?>"> ke "after.body.start "container, bagaimana saya bisa menambahkan kode ini ke <head>?
— Mike

6

Saya menemukan solusinya sendiri.

Dalam file Layout xml.

<page xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:View/Layout/etc/page_configuration.xsd">
    <body>
        <referenceContainer name="head.additional">
            <block class="Magento\Framework\View\Element\Template" name="block_name" template="custom_head.phtml" />
        </referenceContainer>
    </body>
</page>

Dalam file custom_head.phtml

<link rel="stylesheet" type="text/css" media="all" href="<?php echo $_helper->getCSSFile()?>">

1

Buat model khusus

tambahkan file xml Namespace / YourModule / view / frontend / layout / default_head_blocks.xml

file ini akan mengubah tata letak kepala menggunakan konfigurasi halaman baca lebih lanjut di http://devdocs.magento.com/guides/v2.0/frontend-dev-guide/layouts/layout-types.html#layout-types-conf

contoh konten file

<?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>
        <css src="Namespace_YourModule::css/custom.css" />
    </head>
</page>

kemudian tambahkan file css di jalur ini Namespace / YourModule / view / frontend / web / css / custom.css


Terima kasih atas jawabannya. Ini berhasil untuk saya. Sekarang css diterapkan di semua halaman menggunakan file ini.
— Vinay Sikarwar

Dapatkah Anda membantu saya, bagaimana saya sekarang dapat menerapkannya hanya di halaman produk
— Vinay Sikarwar

Tidak yakin tentang ini, tetapi bagaimana dengan .catalog-product-view body class yang digunakan magento pada halaman produk Anda bisa mewarisi properti CSS darinya!
— Mohamed Abo Badawy
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.