我在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;?>
但那之前有效吗?
让我知道你们的想法。谢谢!
答案 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?>