我在具有测试子域的同一服务器上克隆了现有的magento 1.7.2安装。前端似乎有效,我可以登录管理员。管理菜单不起作用,没有下拉列表,复制URL路径也不起作用。我在网上搜索过,大多数答案都追溯到2008年,并表明这是一个权利问题。所以我已经将文件夹和文件的权限更改为755和644,但仍然没有工作菜单。缓存(var / cache)为空。
这些菜单是javascript生成的。以下错误消息来自控制台:
Error: TypeError: Element.addClassName is not a function
要清楚 - 解决方案不是javascript,但它是服务器上的东西。此安装在与另一个域的另一个目录中的同一服务器上运行。
任何想法如何解决这个问题?
答案 0 :(得分:2)
错误
Error: TypeError: Element.addClassName is not a function
表示您网页上的某些javascript无法调用addClassName
方法。
addClassName
方法通过prototype
javascript框架添加到元素中。
这意味着您的浏览器很可能无法下载prototype.js
文件。由于无法下载此文件,因此永远不会定义addClassName
方法,并且您会收到错误。
查看管理页面的源代码,找到包含您的Magento版本附带的prototpye版本的脚本标记。
<script type="text/javascript" src="http://magento.example.com/js/prototype/prototype.js"></script>
从此脚本标记中获取URL并将其加载到浏览器中。
我的猜测是你会得到一个404,因为文件丢失,或者因为文件具有不正确的权限而出现禁止错误,或者某些其他Web服务器错误导致文件无法显示。链接也可能指向基于Magento中配置或缓存的值的旧域名。
追查问题的根源,你会很高兴。
答案 1 :(得分:0)
另一个原因可能是皮肤和CSS规则对您的环境不正确。
我刚刚将一个站点从实时移动到本地,并将skin / css / media配置为子域,因此我查看了core_config_data表并更新了URL
答案 2 :(得分:0)
请检查您是否已将merge js或css设置为yes,如果您无法通过菜单进行更新,则可以通过db更新:
SELECT * FROM core_config_data WHERE path LIKE 'dev%'
从1更改为0 merge_css和merge_js
答案 3 :(得分:-1)
在我的情况下,我已经更改了文件夹及其重复文件和文件夹的权限,它开始工作。试试一次。