2014-01-13 55 views
0

我使用的Magento和我header.phtml自定义主题,用下面的代码:Magento皮肤网址'默认'取代'主题'?

<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

我不知道这是否回答你的问题,但它可能会解决你的问题。
你永远不要使用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?> 
+0

谢谢,但我曾经使用过一个空的getSkinUrl(),并没有指定“其他”,它已经工作。很奇怪。 – user3179784

+0

也许你只是幸运。 :)无论如何,你不应该使用一个空参数的方法。 – Marius

1

在管理System(Menu) -> Configuration -> General(Sidebar) -> Design -> Header(Section) -> Logo Image Src中设置URL。并确保你的主题定义了这一点,否则Magento会在你的定义不存在的地方出现。然后恢复硬编码的链接回到$this->getLogoSrc()