未加载Magento块模板文件

时间:2012-03-16 20:30:20

标签: php magento

我正在尝试做一些非常基本的事情:编辑类别产品寻呼机模板的一小部分。我将pager.phtml.../base/default/template/page/html/复制到我自己主题的template/page/html文件夹中,并在新文件中更改了我需要更改的内容。不幸的是,前端没有任何改变。

我尝试启用“模板路径提示”,它肯定显示我的自定义模板正在加载。当我删除主题的pager.phtml时,所有内容都会保留(就像它仍在加载默认模板一样)。当我编辑默认模板时,仍然没有任何变化!啊哈!它必须缓存......

但是我已经禁用了缓存(它是一个开发站点),并且无论如何都尝试刷新它们。没有什么变化。我在这个网站上编辑了很多模板,他们都按预期工作,只有pager.phtml给我带来了麻烦。

如果有人能指出我正确的方向,或者甚至以我的方式再调整一些调试想法,那就太好了。提前谢谢。

4 个答案:

答案 0 :(得分:4)

Tripple检查路径。说真的,与Magento合作的一些事情让人(包括我自己)错过了明显低于一级的事情。

完成后,跳转到

app/code/core/Mage/Core/Block/Template.php

查找包含模板文件的行

$includeFilePath = realpath($this->_viewDir . DS . $fileName);
if (strpos($includeFilePath, realpath($this->_viewDir)) === 0 || $this->_getAllowSymlinks()) {
    include $includeFilePath;
} else {
    Mage::log('Not valid template file:'.$fileName, Zend_Log::CRIT, null, null, true);
}

并添加调试代码以找出您的phtml未被包含的原因。

答案 1 :(得分:2)

如果您的缓存已关闭,并且您编辑base/default包/主题无效,则听起来您正在编辑错误的文件...

偶然的是它是1.4版本的1.3模板 - 因为寻呼机设置在两个版本之间发生了变化,并且会导致像你所描述的特殊问题。

您是否测试过覆盖另一个.phtml文件以查看它是否真的有效(例如,如果您已正确设置)。

最后,缓存是最后的手段,您是否安装了APC / Eaccelerator并将mtime / stat参数设置为false?因为这会忽略文件修改时间并直接从其内部缓存提供数据。 Apache / PHP重启将证明这一点。

运行验证

php -i | grep mtime
php -i | grep stat

或者通过创建测试phpinfo();文件

答案 2 :(得分:0)

在System-> Config-> General-> Design-> Package中检查您的设计设置(示例:默认) System-> Config-> General-> Design-> Themes-> Default(设置您的主题目录名称)。

答案 3 :(得分:-2)

还可以尝试:

  1. 重新索引(可能会更改模板,但可能会加载旧索引)
  2. 清理/ var / cache文件夹本身。
  3. 网站是否使用litespeed或任何其他缓存实用程序?可能还要清理那些缓存。