Magento2:CSSファイルを変更するためのベストプラクティス


14

cssファイルを変更したいpub/static/frontend/Magento/luma/en_US/css/styles-l.css
最初、このファイルはpub / staticフォルダーに存在せず、

vendor/magento/theme-frontend-blank/web/css/styles-l.less (it's styles-l.less)

を使用して静的コンテンツを展開するとphp bin/magento setup:static-content:deploy、それに関連するpub / staticに2つのファイルが作成されます。
1. pub/static/frontend/Magento/luma/en_US/css/styles-l.less
2. pub/static/frontend/Magento/luma/en_US/css/styles-l.css

私は支援を受けた開発者であり、モジュールの開発中にpub / staticに存在するものはすべて削除する傾向があります(.htaccessを除く)。だから私には、直接変更するのに最適なオプションではないようですpub/static/frontend/Magento/luma/en_US/css/styles-l.css

その場合、上記のCSSファイルを変更するためのベストプラクティスは何ですか?
1.変更するpub/static/frontend/Magento/luma/en_US/css/styles-l.lessか、または
2.pub/static(開発中に)すべてを削除できるという理解が間違っているためpub/static/frontend/Magento/luma/en_US/css/styles-l.css、変更する必要があり、削除しないでください。

回答:


19

pub / *またはvendor / *ディレクトリ内のファイルを編集/変更しないでください。Pubはデプロイ用であり、vendorはデフォルト構造用であり、テンプレートまたはカスタムモジュールを介してオーバーライドします。代わりに:

  • app / design / frontend / {vendor} / {yourTheme} /内に新しいテーマを作成します。BlankまたはLumaテーマを使用できます。Blankから継承する新しいテーマを作成することもできます(継承はtheme.xml内で定義されます)。すでにいくつかのテーマを使用している場合は、この手順をスキップしてください。
  • テーマ内で.lessを編集して、変更が表示されたままになり、キャッシュをクリアしたりシステムをアップグレードしたりしても変更が置き換えられないようにします。
  • gruntを使用して、.lessをデプロイメントファイルにコンパイルします。
  • また、ソースマップをセットアップして、テーマ.lessファイル内でスタイリングをピンポイントに設定して、生産性を高めることもできます。

便利なリファレンス:


ありがとうございました。テーマTemplatemonster/themeを使用styles-l.lessしていますが、テーマに存在しません。をコピーvendor/magento/theme-frontend-blank/web/css/styles-l.lessapp/design/frontend/Templatemonster/theme/web/css/styles-l.lessて使用/変更しますか?
amitshree

2
いいえ、Templatemonster / theme内で編集するファイルの数を少なくする必要があります。pubsディレクトリ内のstyles-*。lessファイルは、テーマやその他のリソースから既にコンパイルされたファイルであり、変更/変更する必要はありません。TMテーマ内でファイルの編集が終了したら、gruntを実行して最終リソースにコンパイルし、pubフォルダーにデプロイします。また、ソースマップを使用して、テーマから少ないファイルを特定することもできます。
g5wx

再度、感謝します。私はクラスの存在のプロパティを変更する必要がある場合だけで、それを明確にするstyles-l.lessmagento/theme-frontend-blank私は/使用私のTMのテーマでの任意の(または新しい)にcssファイルをそれらのクラスを上書きし、それに応じて変更する必要がありますテーマ。テーマはMagento1でmagento/theme-frontend-blank動作していたテーマと同じようbase/defaultに動作しますか?
amitshree

1
はい、作成したい変更はテンプレート内に反映されるため、変更の範囲はそのテンプレート内でローカルに維持され、アップグレード時にオーバーライドされません。M2の空のテンプレートには、M1のデフォルトと同じ基本機能があります。つまり、ベース定義が既に作成されており、拡張テーマに、変更しない要素のフォールバックを設定できます。
g5wx

4

このアプローチは私のために働いた

.lessファイルに必要な変更を加えてから、次のコマンドを実行します。

php bin/magento setup:upgrade

php bin/magento cache:flush

3

他のテーマを設定する必要がある場合:

module.exports = {
    blank: {
        area: 'frontend',
        name: 'Magento/blank',
        locale: 'en_US',
        files: [
            'css/styles-m',
            'css/styles-l',
            'css/email',
            'css/email-inline'
        ],
        dsl: 'less'
    },
    luma: {
        area: 'frontend',
        name: 'Magento/luma',
        locale: 'en_US',
        files: [
            'css/styles-m',
            'css/styles-l'
        ],
        dsl: 'less'
    },

    porto: {
        area: 'frontend',
        name: 'Smartwave/porto',
        locale: 'zh_Hans_CN',
        files: [
            'css/styles-m',
            'css/styles-l'
        ],
        dsl: 'less'
    },

    backend: {
        area: 'adminhtml',
        name: 'Magento/backend',
        locale: 'en_US',
        files: [
            'css/styles-old',
            'css/styles'
        ],
        dsl: 'less'
    }
};

2
devに/ツール/イサキ/のconfigs / theme.jsファイル
パトリック・鵬


0

実行することをお勧めします

php bin/magento setup:upgrade
php bin/magento setup:static-content:deploy

ご存知の通り、

php bin/magento setup:upgrade

キャッシュと静的コンテンツを消去します。

php bin/magento setup:static-content:deploy 

<mageroot>/pubフォルダ内のすべてのテーマを展開します。このコマンドは、ストアの初回ロードを大幅に削減します。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.