page.xml addCss没有反映在网站中

时间:2015-01-03 09:43:01

标签: magento

我正在使用Magento 1.9,并尝试制作Magento主题。

以下是我的app/design/frontend/{MY_PACKAGE}/default/template/layout/ page.xml

<?xml version="1.0"?>
<layout version="1.0">
    <default>
        <label>All Pages</label>
        <reference name="head">
            <action method="addCss"><stylesheet>css/base.css</stylesheet></action>
        </reference>
        <reference name="root">
            <action method="setTemplate"><template>page/1column.phtml</template></action>
        </reference>
        <block type="page/html_footer" name="footer" as="footer" template="page/html/footer.phtml">

        </block>
    </default>
</layout>

这是app/design/frontend/{MY_PACKAGE}/default/template/page/ 1column.phtml

<!DOCTYPE html>
<html>
<head>
<?php echo $this->getChildHtml('head'); ?>
</head>
<body>
<?php echo $this->getChildHtml('header'); ?>
<div class="middle">
    <div class="col-main"><?php echo $this->getChildHtml('content'); ?></div>
</div>
<?php echo $this->getChildHtml('footer'); ?>
<?php echo $this->getChildHtml('before_body_end'); ?>
</body>
</html>

我无法将base.css附加到页面上;它没有出现在源代码中。我错过了什么?

P.S。我已经在缓存管理中禁用了缓存;也没有应用设计变更。


更新页面<head>呈现为:

<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Home page</title>
<meta name="description" content="Default Description" />
<meta name="keywords" content="Magento, Varien, E-commerce" />
<meta name="robots" content="NOINDEX,NOFOLLOW" />
<link rel="icon" href="http://www.example.com/dev/skin/frontend/base/default/favicon.ico" type="image/x-icon" />
<link rel="shortcut icon" href="http://www.example.com/dev/skin/frontend/base/default/favicon.ico" type="image/x-icon" />
<!--[if lt IE 7]>
<script type="text/javascript">
//<![CDATA[
    var BLANK_URL = 'http://www.example.com/dev/js/blank.html';
    var BLANK_IMG = 'http://www.example.com/dev/js/spacer.gif';
//]]>
</script>
<![endif]-->
<link rel="stylesheet" type="text/css" href="http://www.example.com/dev/skin/frontend/base/default/css/styles.css" media="all" />
<link rel="stylesheet" type="text/css" href="http://www.example.com/dev/skin/frontend/base/default/css/widgets.css" media="all" />
<link rel="stylesheet" type="text/css" href="http://www.example.com/dev/skin/frontend/base/default/css/print.css" media="print" />
<script type="text/javascript" src="http://www.example.com/dev/js/prototype/prototype.js"></script>
<script type="text/javascript" src="http://www.example.com/dev/js/lib/ccard.js"></script>
<script type="text/javascript" src="http://www.example.com/dev/js/prototype/validation.js"></script>
<script type="text/javascript" src="http://www.example.com/dev/js/scriptaculous/builder.js"></script>
<script type="text/javascript" src="http://www.example.com/dev/js/scriptaculous/effects.js"></script>
<script type="text/javascript" src="http://www.example.com/dev/js/scriptaculous/dragdrop.js"></script>
<script type="text/javascript" src="http://www.example.com/dev/js/scriptaculous/controls.js"></script>
<script type="text/javascript" src="http://www.example.com/dev/js/scriptaculous/slider.js"></script>
<script type="text/javascript" src="http://www.example.com/dev/js/varien/js.js"></script>
<script type="text/javascript" src="http://www.example.com/dev/js/varien/form.js"></script>
<script type="text/javascript" src="http://www.example.com/dev/js/varien/menu.js"></script>
<script type="text/javascript" src="http://www.example.com/dev/js/mage/translate.js"></script>
<script type="text/javascript" src="http://www.example.com/dev/js/mage/cookies.js"></script>
<!--[if lt IE 8]>
<link rel="stylesheet" type="text/css" href="http://www.example.com/dev/skin/frontend/base/default/css/styles-ie.css" media="all" />
<![endif]-->
<!--[if lt IE 7]>
<script type="text/javascript" src="http://www.example.com/dev/js/lib/ds-sleight.js"></script>
<script type="text/javascript" src="http://www.example.com/dev/skin/frontend/base/default/js/ie6.js"></script>
<![endif]-->

<script type="text/javascript">
//<![CDATA[
Mage.Cookies.path     = '/dev';
Mage.Cookies.domain   = '.www.example.com';
//]]>
</script>

<script type="text/javascript">
//<![CDATA[
optionalZipCountries = ["HK","IE","MO","PA"];
//]]>
</script>
<script type="text/javascript">//<![CDATA[
        var Translator = new Translate([]);
        //]]></script></head>

3 个答案:

答案 0 :(得分:1)

我没有看到他们将布局放在模板文件夹中的位置,但主要是这些信息在1.9版本上已经过时了。我建议您阅读here找到的版本。

但是对于您的具体问题,布局必须在

app/design/frontend/{MY_PACKAGE}/default/template/layout/

但是你还必须了解Magento的后备机制(进一步阅读here),它基本上宣称了设计的层次结构。 这样,如果Magento在所选设计中找不到文件,它将在下一个分层设计中看到它。

从1.9开始,层次结构发生了变化。

所以在1.9之前,层次结构是静态的,就像那样

  1. /皮肤/前端/ {MY_PACKAGE} / {MY_THEME} /
  2. /皮肤/前端/ {MY_PACKAGE} /默认/
  3. /皮肤/前端/碱/默认/
  4. 从1.9开始,后备是动态的,可以在每个主题中进行配置。 例如,如果我们在app/design/frontend/default/iphone中使用Magento附带的主题,您会找到此文件:etc/theme.xml代表

    <theme>
        <parent>default/default</parent>
    </theme>
    

    因此,如果Magento在 iphone 主题中找不到文件,它将在默认主题中查看默认主题 em>包。由于包默认和主题默认中的文件etc/theme.xml将其视为无父(<parent/>),因此后备将终止,但可能已经此外,如果此主题添加定义了父母。

    这就是为什么我要求你的网站呈现<head>的原因,因为如果base.css放错地方,你会找到一个对base.css的调用,但是在错误的位置(例如一个电话)对于http://www.example.com/skin/frontend/base/default/css/base.css

    所以,现在你知道了,你必须知道布局xml page.xml负责你所有页面的整个结构。 因此,如果您保留xml,则覆盖Magento的page.xml。

    要执行您想要的操作,我建议您使用app/design/frontend/{MY_PACKAGE}/default/template/layout/下的文件 local.xml ,并使用与page.xml中完全相同的代码并删除该page.xml。这样它应该可以工作。

答案 1 :(得分:0)

你必须添加类型,同时检查你的css是否在正确的路径中

page.xml示例

<default translate="label" module="page">
    <label>All Pages</label>
    <block type="page/html" name="root" output="toHtml" template="page/3columns.phtml">

        <block type="page/html_head" name="head" as="head">
            <action method="addJs"><script>prototype/prototype.js</script></action>
            <action method="addJs"><script>lib/ccard.js</script></action>
            <action method="addJs"><script>prototype/validation.js</script></action>
            <action method="addJs"><script>scriptaculous/builder.js</script></action>
            <action method="addJs"><script>scriptaculous/effects.js</script></action>
            <action method="addJs"><script>scriptaculous/dragdrop.js</script></action>
            <action method="addJs"><script>scriptaculous/controls.js</script></action>
            <action method="addJs"><script>scriptaculous/slider.js</script></action>
            <action method="addJs"><script>varien/js.js</script></action>
            <action method="addJs"><script>varien/form.js</script></action>
            <action method="addJs"><script>mage/translate.js</script></action>
            <action method="addJs"><script>mage/cookies.js</script></action>
            <action method="addJs"><script>prototype/window.js</script></action>
            <action method="addItem"><type>js_css</type><name>prototype/windows/themes/default.css</name></action>


            <block type="page/js_cookie" name="js_cookies" template="page/js/cookie.phtml"/>

            <!-- Remove items which the RWD package is not dependent upon -->
            <action method="removeItem"><type>skin_js</type><name>js/ie6.js</name></action>

            <!-- Add vendor dependencies -->
            <action method="addItem"><type>skin_js</type><name>js/lib/jquery-1.10.2.min.js</name></action>
            <action method="addItem"><type>skin_js</type><name>js/lib/modernizr.custom.min.js</name></action>
            <action method="addItem"><type>skin_js</type><name>js/lib/selectivizr.js</name></action>
            <action method="addItem"><type>skin_js</type><name>js/lib/matchMedia.js</name></action>
            <action method="addItem"><type>skin_js</type><name>js/lib/matchMedia.addListener.js</name></action>
            <action method="addItem"><type>skin_js</type><name>js/lib/enquire.js</name></action>
            <action method="addItem"><type>skin_js</type><name>js/app.js</name></action>
            <action method="addItem"><type>skin_js</type><name>js/lib/jquery.cycle2.min.js</name></action>
            <action method="addItem"><type>skin_js</type><name>js/lib/jquery.cycle2.swipe.min.js</name></action>
            <action method="addItem"><type>skin_js</type><name>js/slideshow.js</name></action>
            <action method="addItem"><type>skin_js</type><name>js/lib/imagesloaded.js</name></action>
            <action method="addLinkRel"><rel>stylesheet</rel><href>//fonts.googleapis.com/css?family=Raleway:300,400,500,700,600</href></action>
            <action method="addItem"><type>skin_js</type><name>js/minicart.js</name></action>

答案 2 :(得分:0)

在1column.phtml中添加以下代码。

app/design/frontend/{MY_PACKAGE}/default/template/page/1column.phtml:

<link rel="stylesheet" type="text/css" href="<php echo $this->getSkinUrl('css/base.css');?>" media="all" />

并将upload base.css添加到:

/skin/frontend/MY_PACKAGE /default/css

删除所有缓存然后刷新