如何在Magento管理区域中添加自定义CSS文件

时间:2013-06-25 15:32:46

标签: magento

我想在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正在/skin/adminhtml/base/default/namespace/module寻找我的CSS。所以,如果我把它放在那里,我可能会很好,一切都会奏效。

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

当我查看像Mage_Widget这样的核心模块时,整个事情看起来更加怪异。它以完全相同的方式添加CSS文件:

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

但该文件存储在unter / skin / adminhtml / 默认 / default / lib /...

我做错了什么?

4 个答案:

答案 0 :(得分:7)

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

顺便提一下,如果您将 app / design / adminhtml / default 重命名为 app / design / adminhtml / base ,则管理主题可以正常运行。

答案 1 :(得分:4)

  1. 转到skin / adminhtml / default / default并将文件放在module / custom.css
  2. 转到app / design / adminhtml / default / default / layout并使用以下代码创建文件module.xml:
  3. <?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中的模块:
    2. <config>
      ...
      <adminhtml>
          <layout>
              <updates>
                  <namespace_module>
                      <file>module.xml</file>
                  </namespace_module>
              </updates>
          </layout>
      </adminhtml>
      ...
      </config>
      

      干杯

答案 2 :(得分:0)

  

顺便提一下,如果你将app / design / adminhtml / default重命名为   app / design / adminhtml / base管理主题工作正常。

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

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

所以我必须将模块中的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文件夹,因为我建议中断在admin的可配置产品部分快速创建产品

我最终复制了mymodule_layoutfile.xml(可能是local.xml文件,我只是不想将文件放在没有引用我的模块的情况下)adminhtml/default/default/layout和{{ 1}} dirs。

请注意,frontend/base/default/layout没有adminhtml目录,因此使用了base

default/default内容:

mymodule_layoutfile.xml

答案 3 :(得分:0)

我遇到了同样的问题。仔细检查路径是否绝对正确。在我的例子中,我有namespace / module / css / mycss.css。我错过了css文件夹,因为Magento在默认文件夹中找不到它,所以它转到了基本文件夹。