为什么会有/ base / default /布局和/ default / default布局?


10

为什么会有/ base / default /布局和/ default / default布局?这似乎令人困惑和多余。

Answers:


7

简而言之,default/default是<1.4CE的遗留物,它是原始基础软件包。Magento核心主题仍以默认包的形式提供-因此不一定要过时,因为它是旧版。

由于在CE升级过程中可以覆盖默认/默认值,因此不建议在此处放置文件-但是试图与<1.3向下兼容的插件可能会故意在此处放置文件,而不是基本/默认值。


来源:http//www.magentocommerce.com/knowledge-base/entry/magentos-theme-hierarchy#3.2


因此,我可以完全擦除/ design / frontend / default目录,一切仍然可以正常运行吗?我的意思是我只拥有/ base / default。可以吗 另外,为什么在/ design / adminhtml或/ design / install中没有/ base / default?
CommaToast 2014年

当然有可能。EE出厂时没有默认/默认主题。
philwinkle 2014年

1
除非您指定其包为要使用的包,否则不使用default / *。您可以根据需要安全地删除目录,但是建议您在升级/安装过程中将其还原。
philwinkle 2014年

1
您可以启用模板提示,如果仍有疑问,可以查看是否有任何块使用/ default / default。
Amasty 2014年

1
我至少可以回忆起几次将设计/软件包切换到default非常有用的调试工具的情况。
pspahn 2014年

5

在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}/defaultbase/default。(除非我不能正确理解,否则请纠正我。)

话虽如此,在没有通用设计包的情况下完全删除通用设计包是不明智的,因为通用设计包中仍有一些皮肤元素仍然是必需的。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.