8

我想在 Magento 的管理区域中加载自定义 CSS 文件。我的方法是完全像在前端那样做:

<action method="addCss">
    <file>namespace/module/mycss.css</file>
</action>

这会生成以下<link>标签:

<link rel="stylesheet" type="text/css" 
    href="http://host/skin/adminhtml/base/default/namespace/module/mycss.css" 
    media="all">

这告诉我 Magento 正在寻找我的 CSS in /skin/adminhtml/base/default/namespace/module. 所以如果我把它放在那里,我可能会没事,一切都会工作。

但这似乎不是正确的方法,因为/skin/adminhtml/base它甚至不存在。

当我查看像Mage_Widget. 它以完全相同的方式添加 CSS 文件:

<action method="addCss"><name>lib/prototype/windows/themes/magento.css</name></action>

但是该文件存储在 /skin/adminhtml/ default /default/lib/...

我究竟做错了什么?

4

4 回答 4

7

base/default是此文件的适当位置。无论设计区域如何,它都是最终的后备方案。鉴于核心团队的先例,在默认/默认情况下提供主题资产并不是不合适的。如果出现在这两个主题中的后者中,则将在前者之前为该路径生成链接。

顺便说一句,如果您将app/design/adminhtml/default重命名为app/design/adminhtml/base,则管理主题可以正常工作。

于 2013-06-25T18:39:33.597 回答
4
  1. 转到 skin/adminhtml/default/default 并将您的文件放在 module/custom.css 下
  2. 转到 app/design/adminhtml/default/default/layout 并使用以下代码创建文件 module.xml:
<?xml version="1.0"?>
<layout>
    <default>
        <reference name="head">
            <action method="addCss">
                <name>module/custom.css</name>
            </action>
        </reference>
    </default>
</layout>
  1. 现在将您的 xml 文件连接到 Namespace/Module/etc/config.xml 中的模块:
<config>
...
<adminhtml>
    <layout>
        <updates>
            <namespace_module>
                <file>module.xml</file>
            </namespace_module>
        </updates>
    </layout>
</adminhtml>
...
</config>

干杯

于 2015-08-18T12:20:46.563 回答
0

我有同样的问题。仔细检查路径是否绝对正确。就我而言,我有命名空间/模块/css/mycss.css。我错过了 css 文件夹,因为 Magento 在默认文件夹中找不到它,所以它去了基本文件夹。

于 2014-01-21T11:58:55.427 回答
0

顺便说一句,如果您将 app/design/adminhtml/default 重命名为 app/design/adminhtml/base,则管理主题可以正常工作。

@benmarks 的答案是正确的,尽管不完整。您还需要重命名另一个目录skin/adminhtml/defaultskin/adminhtml/base

我为管理员创建了一个自定义主题,因此我可以处理标题插入等。

所以我不得不改变config.xml我的模块看起来像:

<config>
<stores>
    <admin>
        <!-- altering admin design package and theme -->
        <design>
            <package>
                <name>MY_THEME_PACKAGE_NAME</name>
            </package>
            <theme>
                <default>default</default>
            </theme>
        </design>
    </admin>
</stores>
</config>

编辑

我发现只是将adminhtml/default/default主题目录重命名为adminhtml/base/defaultskin我建议的文件夹会破坏管理员的可配置产品部分中的快速产品创建。

我最终将一个mymodule_layoutfile.xml(可能是一个local.xml文件,我只是不想在没有参考我的模块的情况下放置一个文件)同时复制到dirsadminhtml/default/default/layoutfrontend/base/default/layoutdirs。

注意adminhtml没有base目录,所以default/default使用。

内容mymodule_layoutfile.xml

<?xml version="1.0"?>
<layout>
    <default>
        <reference name="head">
            <action method="addJs"><script>jquery/jquery.min.js</script></action>
            <action method="addJs"><script>jquery/jquery.noConflict.js</script></action>
        </reference>
    </default>
</layout>
于 2013-10-24T20:52:55.940 回答