我正在使用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>
答案 0 :(得分:1)
我没有看到他们将布局放在模板文件夹中的位置,但主要是这些信息在1.9版本上已经过时了。我建议您阅读here找到的版本。
但是对于您的具体问题,布局必须在
app/design/frontend/{MY_PACKAGE}/default/template/layout/
但是你还必须了解Magento的后备机制(进一步阅读here),它基本上宣称了设计的层次结构。 这样,如果Magento在所选设计中找不到文件,它将在下一个分层设计中看到它。
从1.9开始,层次结构发生了变化。
所以在1.9之前,层次结构是静态的,就像那样
从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
删除所有缓存然后刷新