Новое расширение Magento показывает 404 страницы

#php #magento

#php #magento

Вопрос:

Я только что запустил magento. Я хочу разработать простое расширение magento, показывающее helloworld. Но когда я хочу получить доступ к странице моего расширения, frontname оно всегда показывает мою 404 error .

Я создал папку Mycompany в app/local . Затем я создал папку Tbc . Затем я создал etc папку и config.xml файл, который выглядит как

 <?xml version="1.0"?>
 <config>
  <modules>
    <Mycompany_Tbc>
        <version>0.1.0</version>
    </Mycompany_Tbc>
 </modules>
 <frontend>
    <routers>
        <tbc>
            <use>standard</use>
            <args>
                <module>Mycompany_Tbc</module>
                <frontName>tbc</frontName>
            </args>
        </tbc>
    </routers>
    <layout>
        <updates>
            <tbc>
                <file>tbc.xml</file>
            </tbc>
        </updates>
    </layout>
 </frontend>
</config>
  

Затем я создал controllers каталог в каталоге моего модуля и создал IndexController.php файл в этом каталоге, например

 class Mycompany_Tbc_IndexController extends Mage_Core_Controller_Front_Action {
/**
 * index action
 */
    public function indexAction() {
        echo 'reached here';
        die();
    }
}
  

Затем я создал Mycompany_Tbc.xml файл в app/etc/modules , который выглядит как

 <?xml version="1.0" encoding="UTF-8"?>
 <config>
  <modules>
    <Mycompany_Tbc>
        <active>true</active>
        <codepool>local</codepool>
    </Mycompany_Tbc>
  </modules>
</config>
  

Я вижу, что мой модуль включен в панели администратора.
Но теперь я хочу получить доступ к magento.local/tbc or magento.local/index.php/tbc , это всегда выдает 404 ошибку. Я установил этот модуль для исправления ошибок 404, и из-за этого расширения страница 404 показывает

 Page not Found
 We couldn't find a page at the URL you specified. The information below will help a Magento programmer figure out why.

Original Path
Original Path Information /tbc.

Module/Front Name
Module/Front Name: tbc.

No modules claim [tbc] as a <frontName/>`.
  

Я пытался создать множество расширений с нуля, но получал одну и ту же ошибку и очищал кэш много раз. Я использую magento 1.9

ОБРАТИТЕ ВНИМАНИЕ, что я делаю это на localhost и magento.local на моем виртуальном хостинге. Я создал виртуальный хост после установки magento, затем изменил web/unsecure/base_url и web/secure/base_url в config_cache_data таблице.

Любая помощь будет высоко оценена.

Ответ №1:

В Mycompany_Tbc.xml

 <codepool>local</codepool>
  

должно быть <codePool>local</codePool>

Комментарии:

1. Чувак, ты спас мою камеру и голову, которую я собирался разбить об стену: п: п: п:п:п: п тебе головы, чувак

Ответ №2:

 <?xml version="1.0" encoding="UTF-8"?>
 <config>
  <modules>
    <Mycompany_Tbc>

<!-- Whether our module is active: true or false -->

        <active>true</active>

<!-- Which codePool to use: core, community or local -->
        <codePool>local</codePool>
    </Mycompany_Tbc>
  </modules>
</config>
  

приложение / код / ядро — Содержит модули, которые распространяются вместе с базовым Magento и составляют основную функциональность.

приложение / код / сообщество — Содержит модули, разработанные третьими сторонами

app / code / local — Содержит разработанные вами пользовательские модули, включая переопределения кода Mage.

Комментарии:

1. Может быть, вы могли бы немного подробнее рассказать о том, почему ваш ответ является возможным решением вопроса? Это было бы полезно и будущим пользователям.

Ответ №3:

У меня была подобная проблема, которую было трудно решить из-за плагина кэширования, но я обнаружил, что я создал модуль в Windows, который работал нормально, хотя он не работал в Linux.

Причина заключалась в том, что Magento ожидал, что папка будет в:

app / code /local / Mycompany / Tbc / controllers и моя папка называлась Controllers — регистр не имел значения в Windows. Потребовалось много времени, чтобы разобраться…