Magento:自定义模块适用于本地主机但不适用于服务器
Magento: Custom module works in localhost but not in server
使用 magento 1.9 我有一个自定义模块应该出现在产品视图中,它在我本地主机的 xampp 服务器上工作正常,但是当我将模块文件上传到服务器时它不起作用,尽管它在系统 > 配置禁用模块输出中显示为启用。
是我的代码还是服务器?
这是在csharls_productmeasure.xml里面的app\etc\modules
<?xml version="1.0" encoding="UTF-8"?>
<config>
<modules>
<csharls_productmeasure>
<active>true</active>
<codePool>local</codePool>
</csharls_productmeasure>
</modules>
</config>
这是config.xml里面的app\code\local\csharls\productmeasure\etc
<?xml version="1.0" encoding="UTF-8"?>
<config>
<modules>
<csharls_productmeasure>
<version>0.0.1</version>
</csharls_productmeasure>
</modules>
<global>
<models>
<productmeasure>
<class>csharls_productmeasure_Model</class>
</productmeasure>
</models>
<blocks>
<productmeasure>
<class>csharls_productmeasure_Block</class>
</productmeasure>
</blocks>
<events>
<sales_quote_add_item>
<observers>
<productmeasure>
<type>singleton</type>
<class>csharls_productmeasure_Model_Observer</class>
<method>updatePrice</method>
</productmeasure>
</observers>
</sales_quote_add_item>
</events>
</global>
<frontend>
<routers>
<productmeasure>
<use>standard</use>
<args>
<module>csharls_productmeasure</module>
<frontName>productmeasure</frontName>
</args>
</productmeasure>
</routers>
<layout>
<updates>
<csharls_productmeasure>
<file>csharls_productmeasure.xml</file>
</csharls_productmeasure>
</updates>
</layout>
</frontend>
</config>
第 1 步:请在服务器中许可您的文件 755
第 2 步:检查您的 php 本地版本和实时版本是否相同
第 3 步:刷新缓存
问题出现在服务器中,因为它在 linux 上运行,而我的 XAMPP 本地主机在 Windows 上。 Windows 不区分大小写,而 linux 区分大小写。因此,当我创建文件夹和文件时,我将名称写成小写以避免出现这种情况,但具有讽刺意味的是,这就是问题所在,在 Magento 中,首字母必须是大写字母,
所以我的模块文件夹是这样用小写字母写的:
csharls/productmeasure/... 它适用于 windows 但不适用于 linux.
我把它改成了首字母大写这样的:
Csharls/Productmeasure/... 这适用于 windows 和 linux.
还更改了 Blocks、controllers、Model 文件的命名空间,所有文件的名称都必须是首字母大写字母,.xml 文件中的所有引用也是如此。
模板 csharls_prodcutmeasure.xml 文件和布局 csharls_productmeasure.phtml 文件,我唯一没有重命名的文件。
使用 magento 1.9 我有一个自定义模块应该出现在产品视图中,它在我本地主机的 xampp 服务器上工作正常,但是当我将模块文件上传到服务器时它不起作用,尽管它在系统 > 配置禁用模块输出中显示为启用。 是我的代码还是服务器?
这是在csharls_productmeasure.xml里面的app\etc\modules
<?xml version="1.0" encoding="UTF-8"?>
<config>
<modules>
<csharls_productmeasure>
<active>true</active>
<codePool>local</codePool>
</csharls_productmeasure>
</modules>
</config>
这是config.xml里面的app\code\local\csharls\productmeasure\etc
<?xml version="1.0" encoding="UTF-8"?>
<config>
<modules>
<csharls_productmeasure>
<version>0.0.1</version>
</csharls_productmeasure>
</modules>
<global>
<models>
<productmeasure>
<class>csharls_productmeasure_Model</class>
</productmeasure>
</models>
<blocks>
<productmeasure>
<class>csharls_productmeasure_Block</class>
</productmeasure>
</blocks>
<events>
<sales_quote_add_item>
<observers>
<productmeasure>
<type>singleton</type>
<class>csharls_productmeasure_Model_Observer</class>
<method>updatePrice</method>
</productmeasure>
</observers>
</sales_quote_add_item>
</events>
</global>
<frontend>
<routers>
<productmeasure>
<use>standard</use>
<args>
<module>csharls_productmeasure</module>
<frontName>productmeasure</frontName>
</args>
</productmeasure>
</routers>
<layout>
<updates>
<csharls_productmeasure>
<file>csharls_productmeasure.xml</file>
</csharls_productmeasure>
</updates>
</layout>
</frontend>
</config>
第 1 步:请在服务器中许可您的文件 755
第 2 步:检查您的 php 本地版本和实时版本是否相同
第 3 步:刷新缓存
问题出现在服务器中,因为它在 linux 上运行,而我的 XAMPP 本地主机在 Windows 上。 Windows 不区分大小写,而 linux 区分大小写。因此,当我创建文件夹和文件时,我将名称写成小写以避免出现这种情况,但具有讽刺意味的是,这就是问题所在,在 Magento 中,首字母必须是大写字母,
所以我的模块文件夹是这样用小写字母写的:
csharls/productmeasure/... 它适用于 windows 但不适用于 linux.
我把它改成了首字母大写这样的:
Csharls/Productmeasure/... 这适用于 windows 和 linux.
还更改了 Blocks、controllers、Model 文件的命名空间,所有文件的名称都必须是首字母大写字母,.xml 文件中的所有引用也是如此。
模板 csharls_prodcutmeasure.xml 文件和布局 csharls_productmeasure.phtml 文件,我唯一没有重命名的文件。