Answers:
简而言之,default/default
是<1.4CE的遗留物,它是原始基础软件包。Magento核心主题仍以默认包的形式提供-因此不一定要过时,因为它是旧版。
由于在CE升级过程中可以覆盖默认/默认值,因此不建议在此处放置文件-但是试图与<1.3向下兼容的插件可能会故意在此处放置文件,而不是基本/默认值。
来源:http://www.magentocommerce.com/knowledge-base/entry/magentos-theme-hierarchy#3.2
default
非常有用的调试工具的情况。
我在Magento官方Wiki上找到了更好的答案。(这是从2012年开始的,所以我不确定任何信息是否过时了-但据我所知,它似乎适用于1.8.1。)虽然我强烈建议您完整阅读(请单击粗体)链接),下面让我总结一下。
到底是/base
什么?
/base/default
是在CE 1.4和EE 1.8中引入的,旨在将所有app-logic-type前端功能整合到一个您永远都不应编辑的代码库中。它具有与带有默认主题的设计包相同的目录结构,但是缺少一些关键的CSS文件,因此他们不建议您将其作为唯一的设计包和主题。
一个伟大的比喻是说那/base
是/design/frontend
什么/core
是/code
。您不应该修改其中的文件/base
。相反,您应该在自己的自定义设计包中扩展其功能,Magento会先出现在内部,然后再出现/base/default
-先进入/design/frontend/{custompackagename}/{customthemename}
,然后再进入 /design/frontend/{custompackagename}/default/
,最后再回到/design/frontend/base/default
。
实际上,应该将其视为/base
- /default
子目录仅存在于此,因为Magento后备系统完成了其主题中每个设计包的遍历。明确地说,设计包是中的子目录,主题是设计包中的子目录。当Magento浏览设计包时,无论是还是,主题始终是Magento外观的最后一个位置。/default
/design/frontend
/base
/{custompackagename}
/default
因此,由于的主要目的/base
是充当回退系统的最终目标,因此根据该目的,它除之外将没有其他主题/base/default
。
为什么会有一个/default
呢?
那么,为什么还有一个/design/frontend/default/default
?而为什么没有/design/adminhtml/base/default
?老实说,我不知道第二个问题的答案。但是,让我尝试首先回答。
忘记了旧版兼容性等,我觉得如果调用而不是可能会更容易理解。因此,对于本次讨论的目的,我将引用,并统称为“通用设计包”。我将引用这些目录中的所有内容,就像它们被称为和一样。由于(至少在前端情况下)Magento的后备系统不再使用,我觉得继续称其为“默认”会造成混淆,因为该词暗示某些东西是后备链的一部分,但是通用设计包不再引入后备链的一部分/generic/default
/default/default
/app/design/frontend/default/
/app/skin/frontend/default/
/app/design/frontend/generic
/app/skin/frontend/generic
/app/design/frontend/default/
/base
。因此,将其称为“通用设计包”而不是“默认设计包”,可以通过告诉我们是的,这是免费的,这只是Magento随附的一组通用主题,而没有暗示它是后备链的一部分,从而减轻了这种混乱。:D
携带上则:通用设计包内部有一个默认的主题和一些非默认的主题:/blank
,/iphone
,和/modern
。如果非默认主题处于活动状态,则其文件将覆盖默认主题中的所有内容,但是无论哪个非默认主题处于活动状态,通用包的默认主题中未被该默认主题覆盖的任何部分仍然可以运行,并且进一步,它们将覆盖中的任何内容/base/default
。最后,/base/default
运行的所有未覆盖部分。
但是,至关重要的是,如果您使用自定义设计包,则通用设计包的任何部分都不会运行。该后备系统会直接从{customdesignpackage}/{customthemename}
到{customdesignpackage}/default
到base/default
。(除非我不能正确理解,否则请纠正我。)
话虽如此,在没有通用设计包的情况下完全删除通用设计包是不明智的,因为通用设计包中仍有一些皮肤元素仍然是必需的。