Magento皮肤网址'默认'替换为'主题'?

时间:2014-01-13 13:42:59

标签: php css magento url-rewriting theming

我在magento和header.phtml中使用自定义主题,使用以下代码:

<div class="logo">
    <a href="<?php echo $this->getUrl('') ?>">
        <img src="<?php echo $this->getSkinUrl('').'images/logo_white.gif'//$this->getLogoSrc() ?>" alt="<?php echo $this->getLogoAlt() ?>" />
    </a>
</div>   

当我第一次加载主页时,getSkinUrl给了我这条路径:

http://site.address.com/skin/frontend/THEME/DEFAULT/images/logo_white.gif

然而,当我加载任何其他页面时,我得到:

http://site.address.com/skin/frontend/THEME/THEME/images/logo_white.gif

如果它不是任何地方的主页,我无法找到为什么皮肤路径会改变的原因。唯一不同的是,我们有这样一种效果,在基础顶部层叠徽标以改变颜色:

<?php if ($this->getIsHomePage()):?>
<div class="back-header">
    <div class="logo">
        <a href="<?php echo $this->getUrl('') ?>">
            <img src="<?php echo $this->getLogoSrc() ?>" alt="<?php echo $this->getLogoAlt() ?>" />
        </a>
    </div>
</div>
<?php endif;?>

但那之前有效吗?

让我知道你们的想法。谢谢!

2 个答案:

答案 0 :(得分:1)

在管理System(Menu) -> Configuration -> General(Sidebar) -> Design -> Header(Section) -> Logo Image Src中设置网址。并确保您的主题定义了这个或Magento后备将发生在您的定义不存在的地方。然后将硬编码链接还原为$this->getLogoSrc()

答案 1 :(得分:0)

我不知道这是否能回答你的问题,但它可以解决你的问题 永远不要将getSkinUrl()与空参数一起使用 所以不要这样:

echo $this->getSkinUrl('').'images/logo_white.gif'

使用

echo $this->getSkinUrl('images/logo_white.gif');

Magento在当前主题中查找指定的路径。如果找到它,则将url返回给资源。如果没有,它会在你设置为默认的主题中查找,如果它不存在,它将从base/default返回该资源的url,忽略资源是否存在。

<强> [编辑] 即可。 我可能也有一个想法,为什么你为不同的页面获得不同的价值 在header.phtml中,徽标应该有2个代码段。一个用于主页,另一个用于其余页面。也许你只修改了一个。

<?php if ($this->getIsHomePage()):?> <-- for homepage-->
    <h1 class="logo"><strong><?php echo $this->getLogoAlt() ?></strong><a href="<?php echo $this->getUrl('') ?>" title="<?php echo $this->getLogoAlt() ?>" class="logo"><img src="<?php echo $this->getLogoSrc() ?>" alt="<?php echo $this->getLogoAlt() ?>" /></a></h1>
<?php else:?><-- for the rest of the pages-->
    <a href="<?php echo $this->getUrl('') ?>" title="<?php echo $this->getLogoAlt() ?>" class="logo"><strong><?php echo $this->getLogoAlt() ?></strong><img src="<?php echo $this->getLogoSrc() ?>" alt="<?php echo $this->getLogoAlt() ?>" /></a>
<?php endif?>