Magento Controller работает Windows, а не Linux - PullRequest
4 голосов
/ 15 сентября 2011

Я создал модуль, который работает на моей установке Windows XAMPP. Тестирование на Linux, однако, похоже, не работает правильно. Точнее, мой контроллер не загружается.

При посещении URL www.mysite.com/modulename/standard/ я получаю ошибку 404. Я ожидаю получить сообщение, выводящее die('here'), предшествующее определению класса в контроллере.

Файл контроллера: /app/code/local/Namespace/Modulename/controllers/StandardController.php.

Класс определяется внутри этого файла следующим образом:

class Namespace_Modulename_StandardController extends Mage_Core_Controller_Front_Action

Выдержка из моего XML-файла конфигурации находится здесь:

<frontend>      
    <routers>
        <modulename>
            <use>standard</use>
            <args>
                <module>Namespace_Modulename</module>
                <frontName>modulename</frontName>
            </args>
        </modulename>
    </routers>
    <!-- other blocks here -->
</frontend>

Первоначально я думал, что это проблема чувствительности к регистру, которую я не заметил при разработке под Windows. Ранее фрагмент XML был следующим, что также не работало. Также обратите внимание, что я пытался посетить www.mysite.com/Modulename/standard и www.mysite.com/modulename/standard для обеих версий XML с ошибкой 404 каждый раз.

<Modulename>
    <use>standard</use>
    <args>
        <module>Namespace_Modulename</module>
        <frontName>Modulename</frontName>
    </args>
</Modulename>

Кто-нибудь знает, в чем может быть проблема?

Спасибо.

Редактировать

По запросу, здесь находится файл конфигурации модуля. Все это кажется правильным - модуль отображается на странице администратора / разработчика, а экран конфигурации модуля (сгенерированный в system.xml) появляется в бэкэнде. Более того, части модуля (и, похоже, контроллера) работают во внешнем интерфейсе!

<config>
<modules>
    <Namespace_Modulename>
        <active>true</active>
        <codePool>local</codePool>
    </Namespace_Modulename>
</modules>
</config>

Редактировать 2

Некоторые версии могут оказаться полезными. PHP 5.3 Magento 1.5.1.0

Ответы [ 3 ]

0 голосов
/ 17 сентября 2011

Ваш контроллер на самом деле называется StandardController.php?В чувствительной к регистру части файловых систем перед «Контроллером» следует начинать с заглавной буквы, а все остальные буквы должны быть в нижнем регистре

0 голосов
/ 19 сентября 2011

Я не могу в это поверить!

Моя коробка разработки была обновлена ​​без моего ведома, по-видимому, и в процессе была изменена моя конфигурация Apache!Наконец я понял, что не получаю обычную страницу ошибок 404 Magento и только простую, некрасивую страницу 404, и проверил мои журналы ошибок Apache, в которых говорилось, что файл /Modulename/standard не существует.Обновление конфигурации Apache для добавления следующего исправило проблему:

<Directory "mymagentodirectory">
AllowOverride All
</Directory>

Я не могу в это поверить.Спасибо всем, кто нашел время, чтобы прочитать и ответить!:)

0 голосов
/ 16 сентября 2011

Попробуйте этот код:

<frontend>      
    <routers>
        <namespace_modulename>
            <use>standard</use>
            <args>
                <module>Namespace_Modulename</module>
                <frontName>modulename</frontName>
            </args>
        </namespace_modulename>
    </routers>
    <!-- other blocks here -->
</frontend>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...