Проблема
Вы столкнулись с ограничением откатной иерархии дизайна Magento а>. Это работает так, чтобы искать в обратном направлении от наиболее конкретного места к наименее конкретному.
... если ваша пользовательская тема вызывает файл CSS с именем «styles.css», но приложение Magento не может найти файл в вашей пользовательской теме, Magento перейдет к следующей теме в иерархии, чтобы найти файл ... он продолжит работу по иерархии тем, пока не найдет файл с именем 'styles.css'.
Этот метод построения дизайна называется откатом, потому что приложение «возвращается» к следующему возможному источнику необходимых файлов, чтобы получить и загрузить запрошенный файл.
Для вас это означает, что файл макета local.xml
может быть получен только из одного места, и это будет то, что наиболее характерно для текущей темы. Таким образом, Magento будет искать его в следующем приоритете:
app/design/frontend/$package/$theme/layout/local.xml
app/design/frontend/$package/default/layout/local.xml
app/design/frontend/base/default/layout/local.xml
Важно понимать, что каждый из этих файлов переопределяет следующий, а не дополняет их. Я слышал, что Magento 2.x может исправить эту ситуацию, но для 1.x нам нужно обойти это.
Возможное решение
Я бы решил решить эту проблему, создав простое расширение, которое просто загружает ваш пользовательский файл css в отдельный файл макета. Тогда вам не нужен файл local.xml
в вашей новой теме, и он будет продолжать возвращаться к default
.
app/etc/modules/My_Theme.xml:
<?xml version="1.0"?>
<config>
<modules>
<My_Theme>
<active>true</active>
<codePool>local</codePool>
</My_Theme>
</modules>
</config>
app/code/local/My/Theme/etc/config.xml:
<?xml version="1.0"?>
<config>
<modules>
<My_Theme>
<version>0.1.0</version>
</My_Theme>
</modules>
<frontend>
<layout>
<updates>
<my_theme>
<file>my_theme.xml</file>
</my_theme>
</updates>
</layout>
</frontend>
</config>
app/design/frontend/$package/$theme/layout/my_theme.xml:
<?xml version="1.0"?>
<layout version="0.1.0">
<default>
<reference name="head">
<action method="addCss"><stylesheet>css/my_theme.css</stylesheet></action>
</reference>
</default>
</layout>
При этом также используется метод отката Magento для загрузки файла. Таким образом, вы можете поместить это в skin/frontend/$package/$theme/css/my_theme.css
или в подкаталог $package/default/css/
.
person
fantasticrice
schedule
12.05.2015