0

我关注了这个(第一条评论), magento - 静态块中的类别名称和图像?创建一个简单的小部件来显示来自 CMS 页面上的静态块的类别图像和标题。它在我的本地 MAMP 版本的 Magento Enterprise 1.13.0.2 上运行良好。但是它在舞台/测试环境 Magento 1.13.1.0 上不起作用。(Ubuntu)。

它没有错误,就好像它忽略了模板文件(info.phtml)。当我恢复到默认主题时,我意识到我必须将模板文件复制到默认企业文件夹才能使其正常工作,但确实如此(本地版本)。我已确保模板文件夹位于每个主题、基础、企业(默认)、MyTheme(默认(这是企业默认)和(MyTheme / MyThemeVariant))中。

本地和舞台之间唯一看起来不同的设置/配置是漂亮的 url 在本地不起作用。我已经查看了 htaccess,但仍然没有解决。在这两个版本上,本机类别链接小部件都不起作用,但我不确定这是否相关。

我禁用了任何扩展,关闭了缓存并清除了索引。依然没有。

我一直在寻找答案,追溯我的步骤,更改和改回我认为可能与 3 天相关的任何设置,所以我被困住了。任何人都可以提供尝试的任何东西,我都会试一试。

4

2 回答 2

0

因此,在 Magento Enterprise 中,您还可以通过 Magento Admin 访问整页缓存:系统->配置->系统->高级->外部整页缓存设置。

在系统->缓存管理页面上,以及禁用所有缓存,您应该刷新 Magento 缓存和缓存存储。

您可能有一个名为 Redis 或 APC 的“缓存”,但我认为这不会影响 .phtml 输出。如果您可以访问后端的小部件,我不认为这些项目是问题。

您的网络服务器可能有一个完整的页面缓存,例如 Varnish,但我不知道如何使用它或打开或关闭它。

从理论上讲,您的网络服务器标头可能会说“此页面未更新,因此互联网提供商可以将本地副本存储在其缓存中”-但如果是这种情况,我会感到惊讶(检查您的标头并检查Cache-control ExpiresandLast-modifed标头,如果您想消除这种可能性)。

您的浏览器可能有自己的小缓存(您可以从浏览器设置中清除)。

如果这不是缓存问题,根据我的经验,.phtml如果文件中有 PHP 错误,但您可以在本地开发服务器上运行,文件会被跳过。会不会是文件权限问题?它可能是您的服务器上的小部件中的一个设置,您的小部件 .phtml 没有处理吗?作为最后的手段,尝试将您的小部件 .phtml 更改为一个非常简单的文件,例如<?php echo('test PHP output'); ?>,看看它是否呈现 - 尝试将小部件放在不同的页面上(即不会在任何地方缓存的新页面),看看是否一切正常。

你会和另一个模块发生命名空间冲突吗?例如,一个 XML 文件正在更改设置 .phtml 模板的小部件块 XML 名称?您的 widget.xml 文件是否声明<supported_blocks>...</supported_blocks>了可能排除您尝试呈现小部件的块?

还有什么?您提到此小部件显示类别信息:您指的是暂存服务器上存在的类别吗?它可能具有与您的开发服务器不同的类别 ID 和/或检查该类别在网站和商店中是否可见。

好吧,我想我现在没有主意了。

于 2014-03-09T12:24:40.243 回答
0

问题是“Block” php 文件的第一个字母是小写的。我将它从 info.php 更改为 Info.php,现在一切正常。

这是迄今为止对 Magento 进行的最令人沮丧的调查。我唯一希望的是它可以为某人节省大量的痛苦。

于 2014-04-12T16:07:35.580 回答