Question

J'ai suivi l'article ici, http://alanstorm.com/magento_infinite_fallback_theme_xml Et je travaille à 99%. Il y a une chose étrange qui se produit qui effacer le cache et tout le déplacement ne s'est pas fixé pour moi. Ce qui se passe, c'est que si je définis un fichier CSS, il ne tirera pas de l'enfant ** (site b) ** mais il tire du parent suivant ** (site A) **. Voici ce que j'ai

(Site A)thème parent (wsu_base/default/etc/theme.xml)

<?xml version="1.0"?>
<theme>
    <parent>rwd/default</parent>
    <layout>
        <updates>
            <wsu_base>
                <file>wsu_base_defaults.xml</file>
            </wsu_base>
        </updates>
    </layout>
</theme>

(Site B)Thème de l'enfant (wsu_base/test/etc/theme.xml)

<?xml version="1.0"?>
<theme>
    <parent>wsu_base/default</parent>
    <layout>
        <updates>
            <wsu_base>
                <file>wsu_base_defaults.xml</file>
            </wsu_base>
            <foundation_default>
                <file>defaults.xml</file>
            </foundation_default>
        </updates>
    </layout>
</theme>

disposition des parents (Site A) (wsu_base/default/layout/wsu_base_defaults.xml) et l'enfant (wsu_base/test/layout/defaults.xml) (Site B) Les deux ont ceci.

<?xml version="1.0" encoding="UTF-8"?>
<layout>
    <default>

        <reference name="head">
            <action method="addItem"><type>skin_css</type><name>css/custom.css</name></action> 

        </reference>

    </default>
</layout>

Ce CSS dans le dossier Skin Parent est (wsu_base/default/css/custom.css)(Site A)

body{ color:blue !important;}

Et chez l'enfant j'ai (wsu_base/test/css/custom.css)(Site B)

body{ color:red !important;}

Je m'attends à ce que tout soit rouge, mais tout est bleu. Maintenant ok, peut-être que je peux surmonter ceci en supprimant le <action method="addItem"><type>skin_css</type><name>css/custom.css</name></action> du parent, et gardez-le chez l'enfant. Je fais ça et rm -rf /var/cache/ encore et encore, touch /var/ngx_pagespeed_cache/cache.flush Encore et encore, assurez-vous que les dossiers CSS et JS sont vides, éteignent toute la mise en cache et ...... Je vois toujours du bleu! Quand je devrais voir du rouge.

J'essaye de devenir intelligent avec ça aussi, chez l'enfant (Site B) J'y vais

<?xml version="1.0" encoding="UTF-8"?>
<layout>
    <default>
        <reference name="head">
            <action method="removeItem"><type>skin_css</type><name>css/custom.css</name></action>
            <action method="addItem"><type>skin_css</type><name>css/custom.css</name></action>
        </reference>
    </default>
</layout>

Penser sûrement, cela supprimera d'abord le parent et chargera l'enfant, mais il est toujours bleu (bien que dans certains des autres tests, je n'ai pas fait l'appel pour le CSS dans le parent et ce n'était ni rouge ni bleu) ... J'ai la valeur de configuration système telle qu'elle est dans l'article. J'ai même essayé de définir l'ensemble par défaut par magasin, mais même lorsque j'ai défini les valeurs pour site B Sur "Skin (Images / CSS)", tout est bleu.

mettre à jour: Il convient également de noter que si je vais ajouter une action de bases de modèle, comme addLinkBlock Ensuite, cela fonctionne à partir du thème de l'enfant (Site B) et ne se présente pas sur le thème parent (Site A) ce qui est attendu. Exemple ror chez l'enfant (Site B)

<?xml version="1.0" encoding="UTF-8"?>
<layout>
    <default>
        <reference name="head">
            <action method="removeItem"><type>skin_css</type><name>css/custom.css</name></action>
            <action method="addItem"><type>skin_css</type><name>css/custom.css</name></action>
        </reference>
        <reference name="top.links">
            <block type="wishlist/links" name="wishlist_link" />
            <action method="addLinkBlock"><blockName>wishlist_link</blockName></action>
        </reference>
    </default>
</layout>

Je verrai la liste de souhaits, et puisque le bloc est détruit dans le thème parent (Site A) Cela prouve que l'enfant (Site B) Fichier de thème (defaults.xml) fonctionne et est lu et la mise en page est mise à jour.

FINAL

AKA: tampon V8

Vous avez atteint le fond, et il y a une leçon que nous revivons encore et encore en tant que développeurs, vérifiez vos chemins, puis recentrez-les. Alors pourquoi le CSS ne le faisait pas, bien dans l'éditeur, il ressemblait au /skin le dossier était dans la racine, mais certains comment c'était dans le /app dossier. Eh bien, pas étonnant qu'il retombe au parent, il n'y avait pas custom.css Fichier dans le thème de l'enfant (Site B) Et c'est ce que fait un secours. :

Je n'ai pas supprimé cela parce que c'est une simple erreur, même les vétérinaires de 20 ans, et c'est juste un bon rappel que vous devez toujours vérifier vos chemins, puis vous éloigner et vérifier à nouveau.

Pas de solution correcte

Licencié sous: CC-BY-SA avec attribution
Non affilié à magento.stackexchange
scroll top