Php Magento皮肤url';默认值';替换为';主题';?

Php Magento皮肤url';默认值';替换为';主题';?,php,css,magento,url-rewriting,theming,Php,Css,Magento,Url Rewriting,Theming,我在magento和my header.phtml上使用自定义主题,使用了以下代码: <div class="logo"> <a href="<?php echo $this->getUrl('') ?>"> <img src="<?php echo $this->getSkinUrl('').'images/logo_white.gif'//$this->getLogoSrc() ?>" alt="

我在magento和my 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为我提供以下路径:

但是,当我加载任何其他页面时,我会得到:

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

<?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;?>

但那以前有用吗


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

我不知道这是否回答了您的问题,但它可能会解决您的问题。
决不能将
getSkinUrl()
与空参数一起使用。
因此,与此相反:

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

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

[编辑]。 我可能也知道为什么不同的页面会有不同的值。
header.phtml
中,徽标应该有两段代码。一个用于主页,另一个用于其他页面。也许你只修改了一个

<?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?>



在管理
系统(菜单)->配置->常规(侧栏)->设计->标题(部分)->徽标图像Src中设置URL
。并确保你的主题定义了这一点,否则Magento将在你的定义不存在的地方出现回退。然后将硬编码的链接恢复到
$this->getLogoSrc()

谢谢,但是我以前使用过一个空的getSkinUrl(),也没有指定“else”,它已经工作了。非常奇怪。也许你只是幸运而已。:)无论如何,您不应该使用带有空参数的方法。
<?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?>